私は「テスト」のためにマニュアルページを使用しています。私は次の2行を除くすべてを理解しています。誰かがこれを実際に使用する方法の例を与えることができますか?これまで私は一次元テスト(つまり、私のテストではx = yのようなもの)を使ってきたので、比較式は私の頭の中にあります。多くの意味があります。誰かが私に例やユースケースを見せると理解できると思います。
EXPRESSION1 -a EXPRESSION2
both EXPRESSION1 and EXPRESSION2 are true
EXPRESSION1 -o EXPRESSION2
either EXPRESSION1 or EXPRESSION2 is true
答え1
-a
-o
両方の式を連結するとつまり独立して使用できる完全な表現ですtest
。だから
test "$x" = foo -o "$x" = bar
成功すれば
test "$x" = foo
または
test "$x" = bar
成功するだろう、つまり "$x"
はいfoo
またはbar
。
あいまいかもしれません。-a
そして-o
廃止、そしてシェルの演算子を使用する必要があります:
test "$x" = foo || test "$x" = bar
より一般的には、次のように書かれます。
[ "$x" = foo ] || [ "$x" = bar ]
バラよりPOSIX sh条件における論理OR評価の予期しない結果-o
混乱して使用された例です。