Щойно я знайшов інший спосіб, який, принаймні, буде працювати з echoрядками (реченнями), які ви хочете розділити на знак оклику. Кінцевий запуск, більш-менш, навколо Bash histexpand і займає лише трохи більше часу, щоб кодувати.
Шестнадцятковий знак оклику, як зазначено на
http://www.ascii-code.com/ , дорівнює 21, тож якщо ви поставите \x21в кінці рядка echo -e $foo, зробіть $fooвласне розширене відлуння [тобто, foo=$(echo -e "$foo")], що ви отримати, коли ви echo $fooзнову - це рядок з а !в кінці. І жодного перемикання йогосторонніх шир.
Працює точно в Bash 4+. Більш ранні версії, мммв.
bzr commit -m "It works"!роботи теж.