この質問にはすでに回答があります :シェル内の「…」、「…」、$'…'、および$「…」の引用符の違いは何ですか?
(1つの回答)
2年前にクローズ。
Linux
(1つの回答)
2年前にクローズ。
以前は''
を使用していました および""
(一重引用符と二重引用符)コマンドラインで同じ意味で使用できますが、最近、'$HOME/some/dir'
に気づきました。 "$HOME/some/dir"
の間、展開されません は。少し調べてみると、""
一部を許可します ''
の間、特殊文字の保護 完全な保護を可能にします。したがって、他のどの文字が''
によって保護されているか ""
ではありません ?
編集:実用的 これらの違いが重要になる可能性がある状況は?
承認された回答:
bashのmanページを見てください。引用に関するセクション全体があります。これはGFDLの下でライセンスされており、ここで使用されているCC-BY-SAライセンスと互換性がないため、すべてを引用することはしませんが、実際にそれを読むことが最も決定的な答えです。
要約すると、一重引用符はすべての解釈を停止します—文字列は文字通りにレンダリングされます。二重引用符は$
を残します (ドル記号)、 `(バッククォート)を特別なものとして、 (バックスラッシュ)特定の他の文字が続く場合は特別です。そして
!
履歴拡張機能が有効になっている場合(デフォルトでは有効)、特別に扱われます。
実際の使用では、$
シェルがコマンドラインの大部分を混乱させるのを防ぎながら、それが可能にするさまざまな拡張(変数など)が必要になることがよくあるため、これは大きな問題です。