混合比较
-a 逻辑与
exp1 -a exp2 如果exp1和exp2都为true的话,这个表达式将返回true
-o 逻辑或
exp1 -o exp2 如果exp1和exp2中有一个为true的话,那么这个表达式就返回true
这与Bash的比较操作符&&和||很相像.在[[]]中使用它.
1 [[ condition1 && condition2 ]]
-o和-a一般都是和test命令或者是[]一起工作.
1 if [ "$exp1" -a "$exp2" ]
注意事项:
S.C.指出,在使用混合比较的时候即使"$var"也可能会产生问题.如果$string为空的话,
[ -n "$string" -o "$a" = "$b" ]可能在某些版本的Bash中会有问题.为了附加一个额外
的字符到可能的空变量中的一种安全的办法是, [ "x$string" != x -o "x$a" = "x$b" ]
(the "x's" cancel out)(没看懂).cancel out是抵消的意思.
-a 逻辑与
exp1 -a exp2 如果exp1和exp2都为true的话,这个表达式将返回true
-o 逻辑或
exp1 -o exp2 如果exp1和exp2中有一个为true的话,那么这个表达式就返回true
这与Bash的比较操作符&&和||很相像.在[[]]中使用它.
1 [[ condition1 && condition2 ]]
-o和-a一般都是和test命令或者是[]一起工作.
1 if [ "$exp1" -a "$exp2" ]
注意事项:
S.C.指出,在使用混合比较的时候即使"$var"也可能会产生问题.如果$string为空的话,
[ -n "$string" -o "$a" = "$b" ]可能在某些版本的Bash中会有问题.为了附加一个额外
的字符到可能的空变量中的一种安全的办法是, [ "x$string" != x -o "x$a" = "x$b" ]
(the "x's" cancel out)(没看懂).cancel out是抵消的意思.