-aと-oは式でどのように機能しますか?

-aと-oは式でどのように機能しますか?

私は「テスト」のためにマニュアルページを使用しています。私は次の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混乱して使用された例です。

おすすめ記事