Execute novamente vários comandos do histórico


22

Imagine que você acabou de executar uma dúzia de comandos. Dizer...

$ cd foo/    # history cmd #10000 (my history is very long)
$ ... more commands ...
$ cd ../     # history cmd #10012 

Eu sei que posso voltar a executá-los concatenado com !-12 && !-11 && !-10 && (and so on) && !!se acontecer de ter apenas sido executado (improvável) ou !10000 && !10001 && !10002 && (and so on), mas há uma maneira mais simples do que a mão-de digitar cada número história com um estrondo e ampersands?

Existe talvez algum tipo de coisa que eu desconheço no bash?

por exemplo !{10000-10012}, algo assim, apenas funcionando.

Respostas:


23

Isto é o que o fc comando.

fc -12 -1

ou

fc 10000 10012

Isso não é exatamente o que você deseja, pois iniciará um editor primeiro, mas isso provavelmente é uma coisa boa, pois permite verificar se você possui os comandos corretos e até editá-los usando todos os recursos do seu editor favorito. Depois de salvar as alterações e sair do editor, os comandos serão executados.


Ah, ah! Brilhante! fc. Corrigir comandos. Faz sentido!
Inanutshellus 9/10/12

1
Para evitar o lançamento de um editor (perigoso!), Você pode usarfc -e true -12 -1
BingsF 07/07

indisponível no ubuntu
okwap 23/09/16

1
@okwap, um absurdo. É POSIX especificado e certamente disponível no Ubuntu. (É um shell built-in, embora, como ele deve ser-por isso, se você está procurando em /binque você não vai encontrá-lo.)
Wildcard
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.