このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。
【Linux】引用符の解釈
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 |