これを使ってみました:
$ 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