1. ホーム
  2. linux

[解決済み】シェル変数に引用符で囲むのはいつ?

2022-04-02 09:41:48

質問

シェルスクリプトで変数を引用符で囲むべきかどうか?

例えば、以下のようにするのが正しいでしょうか。

xdg-open $URL
[ $? -eq 2 ]

または

xdg-open "$URL"
[ "$?" -eq "2" ]

また、その場合は、なぜ?

解決方法は?

一般的なルール:空白、スペース(または任意の空白)、特殊文字(ワイルドカード)のいずれかを含むことができる場合は、それを引用します。空白を含む文字列をクォートしないと、シェルが一つの引数をいくつにも分割してしまうことがよくあります。

$? は数値なので、引用符は必要ありません。とはいえ $URL が必要なのは、そこに何を入れるか、また、空でも引数が必要かどうかによるでしょう。

私は習慣的に文字列を引用符で囲むことが多いのですが、その方が安全だからです。