%20%E3%81%8C%E3%81%82%E3%82%8B%E5%A0%B4%E5%90%88%E3%80%81%E7%B5%82%E4%BA%86%E3%81%97%E3%81%AA%E3%81%84%E5%8F%82%E7%85%A7%E3%81%A8%E3%81%BF%E3%81%AA%E3%81%97%E3%81%BE%E3%81%99%E3%80%82.png)
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)
現在のリストが完全に解析されるまで、記録メカニズムは一時的に無効になります(参考文献を参照)。!"
入力から削除され、以降の文字!
は特に意味がありません。