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