bash中的以下条件表达式有什么问题?

时间:2011-02-09 15:42:07

标签: bash comparison conditional

bash中的以下条件表达式有什么问题?

if [[ -z $x -o $x -ge 100 -o $x -le -100 ]]; then
        echo $x "\t" $i
fi

我收到以下错误
条件表达式中的语法错误
-o

附近的语法错误

感谢。

1 个答案:

答案 0 :(得分:4)

像这样使用||

if [[ -z $x || $x -ge 100 || $x -le -100 ]]; then

[是测试的同义词 - 事实上,在某些系统中,/ bin / [指向/ bin / test:

$ which [
/usr/local/bin/[

测试的-o标志执行OR

-o的{​​{1}}标志(bash内置)检查是否设置了shell选项[例如用于vi编辑的[[]