シングルクォートとダブルクォート
クォートの種類によって、内部の変数($var)やコマンド置換($(...))が展開されるかどうかが変わります。
ダブルクォート (")
ダブルクォートで囲むと、変数やコマンド置換が展開されます。
var='World'
echo "Hello ${var}"
echo "Now: $(echo 'SUCCESS')"
シングルクォート (')
シングルクォートで囲むと、すべての文字がリテラル(ただの文字)として扱われ、展開は行われません。
var='World'
echo 'Hello ${var}'
echo 'Now: $(echo "SUCCESS")'
エスケープ文字 (\)
バックスラッシュ(\)を文字の前に置くことで、その文字が持つ特別な意味を無効化(エスケープ)できます。
ダブルクォート内でのエスケープ
ダブルクォートの中で `$` や `"` を文字として表示したい場合に使用します。
echo "Price is \$100"
echo "Quote: \"Hello\""
ANSI C Quoting ($'...')
`$'...'` の形式を使うと、改行やタブなどのバックスラッシュ記法を直接解釈させることができます。
改行やタブの利用
# \n (改行) や \t (タブ) が解釈される
echo $'Line 1\nLine 2'
echo $'Column 1\tColumn 2'