我正在使用手册页进行“测试”。除了以下两行之外,我明白了所有内容。有人能给我一个如何实际使用它的例子吗,因为到目前为止我一直在使用一维测试(即在我的测试中是 x = y 之类的东西),所以比较表达式在我的脑海中没有多大意义。我想如果有人能给我展示一个例子或用例我就会明白。
EXPRESSION1 -a EXPRESSION2
both EXPRESSION1 and EXPRESSION2 are true
EXPRESSION1 -o EXPRESSION2
either EXPRESSION1 or EXPRESSION2 is true
Run Code Online (Sandbox Code Playgroud)
-a
并-o
连接两个表达式,即可以与 独立使用的完整表达式test
。因此
test "$x" = foo -o "$x" = bar\n
Run Code Online (Sandbox Code Playgroud)\n成功,如果
\ntest "$x" = foo\n
Run Code Online (Sandbox Code Playgroud)\n或者
\ntest "$x" = bar\n
Run Code Online (Sandbox Code Playgroud)\n会成功,即 "$x"
要么foo
要么bar
。
这可能是不明确的,因此-a
和-o
已被弃用,并且应使用 shell\xe2\x80\x99s 运算符来代替:
test "$x" = foo || test "$x" = bar\n
Run Code Online (Sandbox Code Playgroud)\n更常见的是,这会写成
\n[ "$x" = foo ] || [ "$x" = bar ]\n
Run Code Online (Sandbox Code Playgroud)\n有关以令人困惑的方式使用的示例,请参阅POSIX sh 条件中逻辑或评估的意外结果。-o