[Bash] 変数をダブルクォートで囲む理由

作成日: 2026年09月17日

Bash では、変数をダブルクォートで囲まないと、空白を含む値が複数の引数に分割されることがあります。

例えば、次のコードでは hello world が 2 つの引数として扱われます。

value="hello world"
printf '<%s>\n' $value

実行結果です。

<hello>
<world>

変数をダブルクォートで囲むと、空白を含む値を 1 つの引数として扱えます。

value="hello world"
printf '<%s>\n' "$value"

実行結果です。

<hello world>

特別な理由がない限り、変数をコマンドの引数として渡すときは "$value" のようにダブルクォートで囲むと、意図しない単語分割やパス名展開を防ぐことができます。

Bash