当記事は、3種類ある引用符のそれぞれの違いについてご紹介します。
それぞれの違いを理解しておくことで試験対策にもなりますし、実際に現場の業務でも役立てることができます。
3種類の引用符
- 「 ‘ 」:単一引用符(シングルクォーテーション)
- 「 ” 」:二重引用符(ダブルクォーテーション)
- 「 ´ 」:バッククォート
いずれも、引用符で挟まれた範囲の内容を通常とは異なる認識をさせたいときに用います。それぞれ認識のされ方に違いがありますので、こちらの記事でポイントを押さえておきましょう。
「 ‘ 」単一引用符(シングルクォーテーション)
まずは単一引用符についてです。
この場合は、すべて単なる文字列として認識されます。以下の例の①では、引用符がないので変数が展開されて「date」と表示されています。
一方、②のように変数を単一引用符で囲った時は、変数は展開されることなく「$」ごと、文字列として扱われます。また、変数でなくても、メタ文字のような特殊な文字もただの文字列として認識されます。
このように、単一引用符は「そのままの文字列で解釈させるための引用符」だと覚えておきましょう。
「 ” 」二重引用符(ダブルクォーテーション)
次に二重引用符についてです。
この場合は、単一引用符と同様、基本的にはそのままの文字列として解釈されます。しかし、変数が含まれる場合は変数が展開されます。具体的には、以下の例の①のように、「$VAR」に代入されている「date」が取り出されて表示される、ということです。
もし、変数を展開せずに「$VAR」をそのまま表示させたいのであれば「$」を打ち消す必要があります。その場合は、②のように「\$VAR」のようにエスケープ文字である「\(バックスラッシュ)」を前に着けることで「$」を無効化させます。
このように、二重引用符は「変数が含まれているときはそれを展開させるための引用符」だと覚えておきましょう。
「 ´ 」バッククォート
最後にバッククォートについてです。
バッククォートは上記の2種類の引用符とは異なり、「引用符で囲った中身をコマンドとして実行しその結果を出力する」ためのものです。
具体的に見てみましょう。
通常、以下の例の①のように、コマンドをそのまま入力しても実行されることはありません。そこで、②のようにバッククォートで囲うことで、コマンドとして実行しその結果を表示させる、ということができます。また、③のように、「変数を展開して、さらに中の値をコマンドとして実行後に結果を表示させる」という使い方もできます。
前述したように、バッククォートは「囲った中身をコマンドとして実行しその結果を出力する」ための引用符です。ですから、コマンドでない文字列をバッククォートで囲ったとしても、以下の例のように「コマンドが見つかりませんでした」と表示されてしまいます。
しかし、バッククォートは単一引用符と区別がつきにくく紛らわしいので、使用するときは「$( )」(読み方:ドルパーレン)で代用することが推奨されています。以下の例のように、バッククォートと全く同じように使用することができます。
このように、バッククォートは「コマンドとして実行しその結果を出力するための引用符」だと覚えてきましょう。
まとめ
これまでの内容を以下の表にまとめます。
いかがでしたでしょうか。
ぜひお勉強の際にお役立て下さい。