Bash: repete os últimos N comandos [duplicados]

34

No bash, você pode repetir o último comando inserindo !! ou o terceiro último comando !-3 , por exemplo.

Existe uma maneira rápida de repetir os últimos 3 comandos, sem ter que digitar !-1; !-2; !-3 explicitamente?

    
por Eddy 03.03.2012 / 13:10

3 respostas

46

fc -N -1

Onde o -N é o último N comando que você deseja repetir.

Isto irá abrir um editor com os últimos N comandos nele. Você pode editar os comandos conforme desejado e, quando fechar o editor, todos eles serão executados em sequência.

    
por 03.03.2012 / 18:34
5

Você também pode virar esse problema de cabeça para baixo e agrupar esses três comandos anteriores, por exemplo:

echo 1; echo 2; echo 3

e então você estará bem escrevendo !! .

    
por 03.03.2012 / 13:24
4

Bem, não o que você espera, mas isso funciona:

history | fgrep -v history | tail -3 | sed 's_^ *__' | cut -f 2- | bash

E você pode criar uma função para isso:

myFunc(){
    history | egrep -v 'history|myFunc' | tail ${1} | sed 's_^ *__' | cut -f 2- | bash
}

Então você pode chamar assim:

myFunc -3     
    
por 03.03.2012 / 13:17

Tags