Bash if block语法

时间:2013-01-14 23:19:27

标签: bash if-statement syntax

我遇到if if block的语法错误,而且我无法纠正它

if [[ $X >= 100] || [$Y >= 100 ]]
then
   echo "..."
fi

我已经重写了这一点,但是找不到正确的语法却没有运气。提前谢谢!

4 个答案:

答案 0 :(得分:5)

这是语法错误,您应该尝试:

if ((X >= 100 || Y >= 100 ))
then
   echo "..."
fi

  • 使用此语法,无需记住-ge等。这就像算术
  • ((...))是一个算术命令,如果表达式非零,则返回退出状态0;如果表达式为零,则返回1。如果需要副作用(赋值),也用作let的同义词。请参阅http://mywiki.wooledge.org/ArithmeticExpression

答案 1 :(得分:3)

您正在寻找的是:

if [[ $X -ge 100 || $Y -ge 100 ]];
then
   echo "..."
fi

答案 2 :(得分:2)

您的if没问题。你的[[命令搞砸了。

if [[ $X -ge 100 || $Y -ge 100 ]]

答案 3 :(得分:1)

您似乎正在尝试嵌套[...]表达式,这不是您在bash中可以执行的操作。 [[ ... ]]表达式是bash中可用的完全独立的结构。我不打算发表正确的表达,因为其他答案已经很好地涵盖了。