Bash論理テストを理解しようとすると、結果は反対です。

Bash論理テストを理解しようとすると、結果は反対です。

これはなぜゼロですか?

$ echo $(( 0 && 0 ))
0

これはなぜゼロですか?

$ echo $(( 1 && 0 ))
0

これはなぜゼロですか?

$ echo $(( 0 && 1 ))
0

これはなぜ1ですか?

$ echo $(( 1 && 1 ))
1

ベストアンサー1

これは「と一致します。論理和「これは&&算術的文脈で意味するものです。真理値表は次のとおりです。

  |  F  |  T
--+-----+-----
F |  F  |  F
--+-----+-----
T |  F  |  T

「AとB」は、AとBの両方が真である場合にのみ真です。

シェルの算術的文脈では、演算子は次のようになります。C規格で定義されているように実装ここで、「true」はゼロ以外の値であり、「false」は0です。これは、実際には「true」(または「成功」)がゼロで、「false」(または「エラー」)がゼロ以外の値である終了コードの逆です。

また見なさい:

$ echo $((2 && 2))
1

$ echo $((-1 && 2))
1

おすすめ記事