空白を含むファイル名の取り扱い
「空白入りファイル名は使うな」が最も単純な解決方法。
入力段階で空白を除外するようにして、システム内に入り込まないようにする。
それにも関わらず、空白ファイル名を取り扱わなければならない場合には、以下のようにして取り扱う。
変数展開は、必ずダブルクォーテーションで括る。
$FOO → "$FOO"
変数単位で括る必要はない。まとめて良い。ただし、外から見て空白が含まれないようにする必要がある。
abc${FOO}def${BAR} → "abc${FOO}def${BAR}"
ダブルクォーテーションを含むようなリテラル文字列が前後に付くなら、その前後はシングルクォーテーションで括る。
'Foo is "'"$FOO"'".'
空白が入ってもあくまで1つの値となるように解釈させるのが重要。