0

我的 if 块有语法错误,我无法纠正它

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

我重写了这个,但没有找到正确的语法。提前致谢!

4

4 回答 4

5

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

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

笔记

  • 使用这种语法,无需记住-ge之类的。这就像算术
  • ((...))是一个算术命令,如果表达式非零,则返回退出状态 0,如果表达式为零,则返回 1。let如果需要副作用(分配),也用作 的同义词。见http://mywiki.wooledge.org/ArithmeticExpression
于 2013-01-14T23:21:41.380 回答
3

你正在寻找的是这个:

if [[ $X -ge 100 || $Y -ge 100 ]];
then
   echo "..."
fi
于 2013-01-14T23:21:31.610 回答
2

if的很好。你的[[命令搞砸了。

if [[ $X -ge 100 || $Y -ge 100 ]]
于 2013-01-14T23:21:30.873 回答
1

您似乎正在尝试嵌套[...]表达式,这不是您可以在bash. 该[[ ... ]]表达式是一个完全独立的构造,可在bash. 我不会费心发布正确的表达方式,因为其他答案已经很好地涵盖了。

于 2013-01-15T13:37:49.197 回答