zsh 5.3(oh-my-zsh経由)があり、実行すると、次の行echo --message="foo!"
に終了していない参照プロンプトが表示されます。
$ echo --message="foo!"
dquote>
これはbashでは発生しません。
!
パラメータから役割を削除すると正常に動作します。
$ echo --message="foo"
--message=foo
ここで何が起こっているのでしょうか?
また、終了していない見積もりプロンプトに応答して"
Enterキーを押すと、次の出力が表示され、完全に削除されます!
。
$ echo --message="foo!"
dquote> "
--message=foo
答え1
これが歴史的な拡張です。
zshexpn(1)
マンページではこれを次のように説明します。
シェルが
!"
入力で一連の文字を検出すると、zshmisc(1)
現在のリストが完全に解析されるまで、記録メカニズムは一時的に無効になります(参考文献を参照)。!"
入力から削除され、以降の文字!
は特に意味がありません。