Insira uma string contendo “!!” em um shell sem que isso seja interpretado

2

Estou tentando enviar uma string que contenha "!!" nisso. No entanto, toda vez que eu o executo no zsh, o zsh substitui !! com o último comando digitado. Como posso obter zsh para não interpretar "!!"? Eu também confirmei a mesma coisa acontece quando eu uso sh.

    
por David 23.10.2013 / 22:40

3 respostas

1

Você já tentou citar sua string com aspas simples em vez de aspas duplas?

link

bbbco (04:45 PM) ~/ $ echo "Exclamation!!"
echo "Exclamationecho "Exclamationecho 'Exclamation!!'""
Exclamationecho Exclamationecho Exclamation!!

bbbco (04:43 PM) ~/ $ echo 'Exclamation!!'
Exclamation!!
    
por 23.10.2013 / 22:46
2

Você já tentou uma barra invertida para todos os personagens?

\!\!

Precedir caracteres com barra invertida (uma barra invertida por caractere) deve dar efeito exatamente a esse caractere, não substituído (não é interpretado na sequência).

    
por 23.10.2013 / 22:43
0

Como mencionado por outras pessoas, citar ou escapar ajuda a impedir a expansão do histórico na linha de comando atual.

Mas você também pode usar

unsetopt BANG_HIST

para desativar o tratamento especial do caractere ! completamente. (Coloque este é o seu ~/.zshrc para torná-lo permanente.)

    
por 23.10.2013 / 22:59

Tags