これを使ってみました:
$ if [$a == 1] then { echo 'yes'; } fi;
しかし、エラーが発生します:
-bash: syntax error near unexpected token `}'
正しい形式は何ですか?運が悪かったのでいくつか試しました。
承認された回答:
[コード> bashによると、これは単なる別の文字です。自己区切りではありません。したがって、[の前後にスペースを入れる必要があります および] 。 [[ および]] 。
そして、 ifに続くコマンド (はい、 [ はコマンドです);で終了する必要があります または改行。
最後に、 == (これはposix、FWIWではありません。posixは =を優先します )は文字列の同等性であり、数値の同等性ではありません。
つまり、次のことを意味している可能性があります:
if [[ $a -eq 1 ]]; then echo yes; fi
ただし、代わりに算術評価を使用することもできます:
if ((a == 1)); then echo yes; fi
(算術評価では、等式は ==です。 、 $は必要ありません 変数名の前。紛らわしいと思います。)
[の詳細については : help test 。 [[について :ヘルプ [[ (これは testに基づいています )。 (( : help let 。 bashについて : man bash