我试图发送一个包含“!!”的字符串。但是,每次我在 zsh 上执行它时,zsh 都会用最后输入的命令替换 !!。我怎样才能让 zsh 不解释“!!”?我还确认当我仅使用 sh 时也会发生同样的事情。
答案1
您是否尝试过用单引号而不是双引号来引用字符串?
bbbco (04:45 PM) ~/ $ echo "Exclamation!!"
echo "Exclamationecho "Exclamationecho 'Exclamation!!'""
Exclamationecho Exclamationecho Exclamation!!
bbbco (04:43 PM) ~/ $ echo 'Exclamation!!'
Exclamation!!
答案2
您是否尝试过为每个字符使用一个反斜杠?
\!\!
前面带有反斜杠的字符(每个字符一个反斜杠)应准确表示该字符,而不是替换(则不进行解释)。
答案3
正如其他人提到的,引用或转义有助于防止当前命令行中的历史记录扩展。
但是你也可以使用
unsetopt BANG_HIST
完全禁用角色的特殊处理!
。(将其设置~/.zshrc
为永久禁用。)