A expansão do histórico funciona de forma muito semelhante no bash e zsh, use! -N para referenciar o enésimo comando anterior
$ echo foo
foo
$ echo bar
bar
$ echo baz
baz
$ !-3 && !-2 && !-1
echo foo && echo bar && echo baz
foo
bar
baz
Digamos que meus últimos 3 comandos foram:
% rm foo.out
% myprog > foo.out
% cat foo.out
Eu gostaria de chamar os últimos 3 com um toque da tecla enter, ou seja, fazer alguns comandos de histórico do shell que invocam:
% rm foo.out && myprog > foo.out && cat foo.out
Como posso fazer isso?