Não é grep
que está causando isso. É seu bash
que está interpretando o !
. Mude para uma versão mais recente de bash
ou use single quotes '!'
para calar bash
.
Se eu correr
grep "!" test.txt
mostrará o erro
bash: !: event not found
Bem, eu sei que devo usar grep '!'
. Mas como entender o erro acima?
Eu sei que !
é um caractere especial de bash. De acordo com o link .
Double quotes: "..." prevents some substitutions but allows others. Every substitution that begins with a dollar sign $ is performed, as is the legacy
...
(backtick) command substitution. Backslash escaping is also performed. No word splitting or filename expansion is performed.
Não menciona que as aspas duplas afetarão! Alguém poderia explicar como o bash ou o grep interpretam grep "!"
? Qual é o "evento"?
Não é grep
que está causando isso. É seu bash
que está interpretando o !
. Mude para uma versão mais recente de bash
ou use single quotes '!'
para calar bash
.
Você está vendo o recurso Expansão do histórico do Bash. Alguns acham útil lembrar de comandos anteriores, mas eu coloquei set +o histexpand
no meu .bashrc
e pressione Ctrl + R para procurar parte do comando.
Tags bash grep special-characters