Hack 87. クォート

特別な文字を持たない文を出力します。

$ echo The Geek Stuff
The Geek Stuff

特別な文字をもつ文を出力します。bash ではセミコロンはコマンドの区切りです。
以下の例では、“The Geek” は echo に関係し、
“Stuff”は Linux コマンドとして扱われますが、そのコマンドは見つかりません。

$ echo The Geek; Stuff
The Geek
-bash: Stuff: command not found

このようにならないように、セミコロンの前に1つの \ を追加します。
これはセミコロンの特別な意味を打ち消し、以下に示すように単純に出力します。

$ echo The Geek\; Stuff
The Geek; Stuff

シングルクォート

囲まれたすべてのものを文字として出力したい場合、シングルクォートを使用します。
$HOSTNAME のような特別な変数でさえ、$HOSTNAME と出力されます。
Linux ホスト名は出力されません。

$ echo 'Hostname=$HOSTNAME ; Current User=`whoami` ; Message=\$ is USD'

Hostname=$HOSTNAME ; Current User=`whoami` ; Message=\$ is USD

ダブルクォート

特別な変数の実際の値を表示したい場合にダブルクォートを使用します。

$ echo "Hostname=$HOSTNAME ; Current User=`whoami` ; Message=\$ is USD"
Hostname=dev-db ; Current User=ramesh ; Message=$ is USD

ダブルクォートは次のものを除いたすべての文字の特別な意味を打ち消します。
o $ パラメータ区切り
o ` バッククォート
o \$ ドル文字
o \´ バッククォート文字
o \" 強調されたダブルクォート
o \\ 強調されたバックスラッシュ