Comportamento de Bizzarre de “eco !!” em Bash interativo. Isso é um recurso?

1

Eu queria testar algo no shell e digitei echo "!!" em vez do típico echo "foo" .

Eu não recebi o !! para a saída. Em vez disso, (e muito inesperadamente!) Produziu a saída do meu comando anterior emitido para o Bash.

Eu tentei pesquisar no google as frases bash !! (e permutações como bash +"!!" ), mas não consegui encontrar nenhuma referência para esse recurso.

Alguém pode me dizer algo sobre o material dos pontos de exclamação e o Bash? Pelo menos como encontrar informações extras?

Eu uso o Bash 4.2.45 no Linux Mint 16 de 64 bits.

    
por Adam Ryczkowski 09.02.2014 / 09:02

2 respostas

4

De man bash , seção HISTORY EXPANSION :

Event Designators

An event designator is a reference to a command line entry in the history list. Unless the reference is absolute, events are relative to the current position in the history list.

[...]

!! - Refer to the previous command. This is a synonym for '!-1'

Você pode desativar a expansão do histórico com set +H se não gostar. Eu geralmente prefiro usar o readline para fazer pesquisas de histórico.

    
por 09.02.2014 / 09:08
1

Você só precisa colocar os pontos de exclamação entre aspas simples.

$ echo '!!'
!!
$
    
por 26.09.2018 / 03:15

Tags