echo "!omg"
输出-bash: !omg: event not found
!omg
字符串输出到控制台?我的问题出现了,因为我需要使用命令行执行一些节点代码:
node -e "var code = function(){ console.log('which contains a lot of !'); }; !func();"
答案 0 :(得分:2)
使用单引号:
echo '!omg'
如果您的输入中有引号,例如要打印console.log('lalala')
,请说:
echo $'console.log(\'lalala\')'
或者,说:
cat | command << EOF
my_string_with_crazy_characters
EOF
最后一个表单不需要你转义输入中的任何字符。
答案 1 :(得分:0)
您可以按以下方式关闭history expansion
[username@hostname ~]$ set +o histexpand
[username@hostname ~]$ echo hello!world!anything
hello!world!anything
开启
[username@hostname ~]$ set -o histexpand
[username@hostname ~]$ echo hello!world!anything
-bash: !world!anything: event not found
答案 2 :(得分:0)
我更喜欢取消设置shell变量histchars
以有效禁用历史记录扩展:
$ echo !omg
bash: !omg: event not found
$ histchars=
$ echo !omg
!omg