完全な答え

完全な答え

私はこれを使用しようとしています:

$ if [$a == 1] then { echo 'yes'; } fi;

しかし、エラーが発生します。

-bash: syntax error near unexpected token `}'

正しい形式は何ですか?いろいろ試してみましたが、運がありませんでした。

ベストアンサー1

[bashによると、これは別の文字にすぎず、自己定義されていません。したがって[、周囲にスペースを追加する必要があります][[andを使用する方が良いかもしれません]]

そして、次のコマンドif(たとえば、コマンドです)[は、または改行文字で終わる必要があります。;

最後に、==(POSIX、FWIWではない、POSIXが好む=)数値平等ではなく、文字列平等です。

だからあなたが意味するのはおそらく次のようなものです:

if [[ $a -eq 1 ]]; then echo yes; fi

ただし、代わりに算術評価を使用できます。

if ((a == 1)); then echo yes; fi

(算術評価で上等はあり==、変数名の前に付ける必要はありません$。混乱するのはわかります。)

詳細については[help test。情報[[:ヘルプ[[(基準test)。について((help let。についてbashman bash

おすすめ記事