EDIT: Você pode fazer isso de maneira compatível com POSIX com a ferramenta de comando fixfc
:
fc 77 79
Isso abrirá seu editor (provavelmente vi
) com os comandos 77 a 79 no buffer. Quando você salvar e sair ( :x
), os comandos serão executados.
Se você não deseja editá-los e com certeza sabe quais comandos está chamando, pode usar:
fc -e true 77 79
Isso é usado true
como um "editor" para editar os comandos, portanto, ele sai sem fazer nenhuma alteração e os comandos são executados como estão.
RESPOSTA ORIGINAL:
Você pode usar:
history -p \!{77..79} | bash
Isso pressupõe que você não esteja usando aliases ou funções ou variáveis presentes apenas no ambiente de execução atual, pois é claro que elas não estarão disponíveis no novo shell que está sendo iniciado.
Uma solução melhor (obrigado Michael Hoffman por me lembrar nos comentários) é:
eval "$(history -p \!{77..79})"
Um dos muito poucos casos em que eval
é realmente apropriado!
Veja também:
!77 ; !78 ; !79
bem?