クォーテーションの話はLPIC1でよく見たものの忘れがちなので改めてまとめてみる。
エスケープ
エスケープとは特殊文字の機能を無効にすること。
シングルクォーテーション
''に囲まれた文字列は全て文字列のままとして扱われる。
例えば、下記は変数が展開されない
TEST=test
echo '$TEST'
$TEST
ダブルクォーテーション
””に囲まれた文字列は一部を除いて文字列として扱われる
一部とは、$ [\]バックスラッシュ [‘]バッククォート のこと。
例えば、下記は変数が展開される。
TEST=test
echo "$TEST"
test
バッククォーテーション
``に囲まれた文字列をコマンドとして実行できる。
例
ls
test1 test2
TEST=ls
echo `$TEST`
test1 test2
lsを予めバッククォートにいれても可能
TEST=`ls`
echo $TEST
test1 test2
まとめ
シングルクォーテーションは全て文字列に入れておくことを前提に、
変数を展開しつつ各文字列を一つにしたいならダブルクォーテーション、
コマンドを利用したいならバッククォーテーションと覚える。
おまけ
一文字だけをエスケープしたい場合、[\]バックスラッシュをつける