Esta pergunta já tem uma resposta aqui:
Não consigo descobrir como escrever o símbolo !
em scripts bash ao colocá-lo em strings de aspas duplas.
Por exemplo:
var="hello! my name is $name! bye!"
Algo louco acontece:
$ age=20
$ name='boda'
$ var="hello! my name is $name! bye!"
Quando pressiono enter no último comando, o comando se repete (digita a si mesmo) sem o último !
:
$ var="hello! my name is $name! bye"
Se eu pressionar enter novamente
$ var="hello! my name is $name bye"
Se eu pressionar enter novamente, desaparecerá nada será enviado
$
Se eu tentar isso:
$ echo "hello\! my name is $name\! bye\!"
Em seguida, o resultado é: hello\! my name is boda\! bye\!
Se eu usar aspas simples, meu nome não será expandido:
$ echo 'hello! my name is $name! bye!'
As saídas são: hello! my name is $name! bye!
Eu tenho isso funcionando assim:
$ echo "hello"'!'" my name is $name"'!'" bye"'!'
Mas é uma grande confusão com "
e '
impossíveis de entender / editar / manter / atualizar.
Alguém pode ajudar?