多个表达式

虽然它是 XSI 标准的一个过时部分,但许多实现仍然支持使用布尔运算符和括号的多个表达式。

(废弃的)运算符与优先级递减如下所列。

( expression )
expression -a expression
expression -o expression

使用这些 (过时的)运算符 ,复杂的 shell 表达式:

if [ "$a" -gt 0 ] && { [ "$b" -ne 2 ] || [ "$b" -e 0 ]; }
then ...
fi

可以通过一次 test(1) 调用来编写:

if [ "$a" -gt 0 -a '(' "$b" -ne 2 -o "$c" -ne 0 ')' ]
then ...
fi