このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。

引用符の解釈

Linuxの引用符の概要

 Linuxシェルでは、引用符を使用して文字列を囲むことで、特殊文字や変数の解釈方法を制御できます。引用符にはいくつかの種類があり、それぞれが異なる動作をします。引用符を適切に使用することで、文字列の内容を正確にシェルに伝えることができます。

引用符の種類

引用符の種類説明
シングルクォーテーション (‘)文字列をそのままの形で解釈し、変数展開やエスケープシーケンスを無効にします。
ダブルクォーテーション (“)変数展開やエスケープシーケンスは有効です。
バッククォーテーション (`)コマンド置換を行い、バッククォーテーション内のコマンドの出力を文字列として取り込みます。
引用符の種類

引用符による動作の違いの例

1.date

・「date」コマンドを実行します。

現在の日付と時刻を表示します。例: 2024年 6月 22日 土曜日 21:22:34 JST

user01@ubuntu-vm:~$ date
2024年  6月 22日 土曜日 21:22:34 JST
2.DATE=date

・「DATE=date」コマンドを実行します。

変数 DATE に文字列 “date” を代入します。

user01@ubuntu-vm:~$ DATE=date
3.echo today is $DATE

・「echo today is $DATE」コマンドを実行します。

変数 $DATE が文字列「date」に展開されます。例: today is date

user01@ubuntu-vm:~$ echo today is $DATE
today is date
4.echo today is '$DATE'

・「echo today is ‘$DATE’」コマンドを実行します。

 シングルクォーテーションで囲むと、変数 $DATE は文字列「$DATE」として、そのまま表示されます。例: date today is $DATE

user01@ubuntu-vm:~$ echo today is '$DATE'
today is $DATE
5.echo today is "$DATE"

・「echo today is "$DATE"」コマンドを実行します。

 ダブルクォーテーションで囲むと、変数 $DATE が文字列「date」に展開され、その値が表示されます。例: date today is date

user01@ubuntu-vm:~$ echo today is "$DATE"
today is date
6.echo today is `$DATE`

・「echo today is `$DATE`」コマンドを実行します。

 バッククォーテーションで囲むと、コマンド置換が行われ、変数 $DATE の値がコマンドとして実行され、その出力が表示されます。例: today is 2024年 6月 22日 土曜日 21:47:30 JST

user01@ubuntu-vm:~$ echo today is `$DATE`
today is 2024年 6月 22日 土曜日 21:47:30 JST

まとめ

 Linuxシェルでの引用符の使用は、文字列の解釈方法を制御するために非常に重要です。シングルクォーテーションは文字列をそのまま解釈し、変数展開を無効にします。ダブルクォーテーションは変数展開を有効にし、バッククォーテーションはコマンドの出力を取得するために使用されます。これらの引用符の動作の違いを理解して、適切に使い分けることが重要です。

引用符の種類

引用符の種類説明
シングルクォーテーション (‘)文字列をそのままの形で解釈し、変数展開やエスケープシーケンスを無効にします。
ダブルクォーテーション (“)変数展開やエスケープシーケンスは有効です。
バッククォーテーション (`)コマンド置換を行い、バッククォーテーション内のコマンドの出力を文字列として取り込みます。
引用符の種類

引用符による動作の違いの例

コマンド結果
date現在の日付と時刻を表示します。例: 2024年 6月 22日 土曜日 21:22:34 JST
DATE=date変数 DATE に文字列 “date” を代入します。
echo today is $DATE変数 $DATE が文字列「date」に展開されます。例: today is date
echo today is '$DATE'シングルクォーテーションで囲むと、変数 $DATE は文字列「$DATE」として、そのまま表示されます。例: date today is $DATE
echo today is "$DATE"ダブルクォーテーションで囲むと、変数 $DATE が文字列「date」に展開され、その値が表示されます。例: date today is date
echo today is `$DATE`バッククォーテーションで囲むと、コマンド置換が行われ、変数 $DATE の値がコマンドとして実行され、その出力が表示されます。例: today is 2024年 6月 22日 土曜日 21:47:30 JST
引用符による動作の違いの例