Acabei de encontrar outra maneira, que pelo menos funcionará com echo
as strings (frases) que você deseja pontuar com um ponto de exclamação. Ele executa uma execução final, mais ou menos, em torno da expansão do Bash e leva apenas um pouco mais de tempo para codificar.
O hexadecimal para um ponto de exclamação, conforme listado em
http://www.ascii-code.com/ , é 21; portanto, se você colocar \x21
no final da sua string echo -e $foo
, faça $foo
seu próprio eco expandido [ou seja, foo=$(echo -e "$foo")
] get quando você echo $foo
novamente é a string com um !
no final. E também não é possível mudar de assunto.
Funciona com certeza no Bash 4+. Versões anteriores, ymmv.
bzr commit -m "It works"!
obras também.