EDIT: Você pode fazer isso de maneira compatível com POSIX com o comando de correção ferramenta fc
:
fc 77 79
Isto irá abrir o 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 quiser editá-los e tiver certeza de quais comandos está chamando, use:
fc -e true 77 79
Isso usa true
como um "editor" para editar os comandos com, 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 está usando nenhum apelido ou função ou qualquer variável que esteja presente apenas no ambiente de execução atual, como é óbvio que eles não estarão disponíveis no novo shell sendo iniciado.
Uma solução melhor (graças a Michael Hoffman por me lembrar nos comentários) é:
eval "$(history -p \!{77..79})"
Um dos poucos casos em que eval
é realmente apropriado!
Veja também: