Bashで感嘆符(!)を使用できませんか?

Bashで感嘆符(!)を使用できませんか?

!curlコマンドを使用して、パスに感嘆符()を持つhttp urlにアクセスしようとしています。たとえば、

curl -v "http://example.org/!287s87asdjh2/somepath/someresource"

コンソールが応答しますbash: ... event not found

どうなりますか?感嘆符をエスケープする正しい構文は何ですか?

ベストアンサー1

感嘆符は次の一部です。歴史的拡張バッシュから。使用するには必須です。一重引用符で囲む(例えば'http://example.org/!132':)。

\文字の前にバックスラッシュ()を使用して、文字を直接エスケープできます(例:)"http://example.org/\!132"。しかし、感嘆符の前のバックスラッシュは記録拡張を防ぎますが、バックスラッシュはいいえこの場合、一部のシェルが除去されます。したがって、curlURLの一部としてリテラルバックスラッシュを渡さないように単一引用符を使用することをお勧めします。

おすすめ記事