我遇到if if block的语法错误,而且我无法纠正它
if [[ $X >= 100] || [$Y >= 100 ]]
then
echo "..."
fi
我已经重写了这一点,但是找不到正确的语法却没有运气。提前谢谢!
答案 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
中可用的完全独立的结构。我不打算发表正确的表达,因为其他答案已经很好地涵盖了。