これら2つのBash ifの問い合わせの違いは何ですか?例えば
if [ "$FOO" = "true" ]; then
比較済み
if [ $FOO = "true" ]; then
違いは何ですか?これら2つの文は同じ効果を持つようです。
ベストアンサー1
値が$FOO
ワイルドカード文字を含まない単一の単語の場合、2つは同じです\[*?
。
$FOO
引用符のないバージョンは、割り当てられていない、空白、または複数の単語がある場合(たとえば、空白またはを含む)、$IFS
構文エラーです。正しい単語の順序(たとえば)の場合、0 -eq 0 -o false
結果は任意である可能性があります。したがって、シェルスクリプトでは常に変数を引用するのが最善です。
ところで、"true"
引用は必要ありません。