我有 zsh 5.3(通过 oh-my-zsh),如果我运行echo --message="foo!"
,我会在下一行得到未终止的报价提示:
$ echo --message="foo!"
dquote>
Run Code Online (Sandbox Code Playgroud)
这不会发生在 bash 中。
当我!
从参数中删除字符时,它工作正常:
$ echo --message="foo"
--message=foo
Run Code Online (Sandbox Code Playgroud)
这里发生了什么事?
我还应该注意,如果我回答未终止的引用提示"
并点击返回,我会得到这个输出,它完全删除!
:
$ echo --message="foo!"
dquote> "
--message=foo
Run Code Online (Sandbox Code Playgroud)
mos*_*svy 11
这就是工作中的历史扩展。
这是zshexpn(1)
联机帮助页的说明:
如果 shell 遇到
!"
输入中的字符序列,则历史机制会暂时禁用,直到zshmisc(1)
完全解析当前列表(请参阅 参考资料)。在!"
从输入删除,任何后续!
字符没有特殊的意义。