grep "!"が "bash:!: イベントが見つかりません"を表示するのはなぜですか? [コピー]

grep "!"が "bash:!: イベントが見つかりません"を表示するのはなぜですか? [コピー]

走れば

grep "!" test.txt

エラーが表示されます

bash:!:イベントが見つかりません

さて、実際にgrep '!'

私は!それがbash特殊文字であることを知っています。 ~によるとhttp://mywiki.wooledge.org/Quotes

二重引用符:「...」は一部の置換を防止しますが、他の置換を許可します。ドル記号 $ で始まる各置換は、従来の...(バックティック) コマンド置換と同様に行われます。また、バックスラッシュエスケープを実行します。単語の区切りやファイル名の拡張は行われません。

二重引用符が影響を与えるという言及はありません! 。 bashやgrepを解釈する方法を説明できる人はいますかgrep "!"? 「イベント」とは何ですか?

答え1

これが原因ではありませんgrepbash説明する人はまさにあなたです!。最新バージョンに切り替えるbashか、を使用してsingle quotes '!'終了しますbash

答え2

あなたはバッシュを見ています歴史的拡張特徴。一部の人は以前のコマンドを覚えておくと便利だと思いますが、私は単にset +o histexpandmyと入力して+を.bashrc押して部分コマンドを検索します。CtrlR

関連情報