ファイル名にスペースがある場合
例として、ファイル名が「test file」というファイルがあった場合、catコマンドの引数として指定する際に
[bash] $ cat test file [/bash]
としてしまうと「『test』というファイルと『file』というファイルの内容を表示させる」と解釈される。 『test file』という、ファイル名にスペースが入ったファイルを指定する際は以下のようにする。
[bash] $ cat 'test file' [/bash] または [bash] $ cat "test file" [/bash]
正規表現を使用する場合
正規表現をコマンド内で使用する際も以下のようにクォーティングする。 [bash] $ grep 'ro*t' root.sh [/bash]
クォート内での変数の展開
クォートする際には、「’」シングルクォートと「”」ダブルクォートの2種類がある。
Vimで「quote.sh」というファイル名を作成、以下を記述、実行権限を付与する。 [bash]
!/bin/bash
obj=pen echo 'I have a $obj' echo "I have a $obj" echo "I have a \$obj" [/bash]
実行してみる。 [bash] $ ./quote.sh [/bash]
実行結果。 [bash] I have a $obj I have a pen I have a $obj [/bash]
1行目:シングルクォート内では変数展開がされず、「$obj」がそのまま出力される。 2行目:ダブルクォート内では変数が展開され、変数「obj」に代入していた「pen」が出力される。 3行目:2行目の出力結果から、ダブルクォート内では変数が展開されるが、「$」の前に「\」でエスケープすることで変数を展開させずにそのまま出力させることができる。