我的bash脚本中有以下代码:

if [[ "$USE_NEW" == "true" ]]; then
    echo "Forcing usage of NEW build script"
    ./android/build/build.new.sh $@
elif [[ $MAJOR > 4 || ($MAJOR = 4 && $MINOR >= 2) ]]; then
    echo "Version greater than or equal to 4.2.x.x, running NEW build script"
    ./android/build/build.new.sh $@
else
    echo "Version less than 4.2.x.x, running LEGACY build script"
    #./android/build/build.legacy.sh $@
fi

我得到一个错误:
line 149: expected `)'

这里的第149行恰好是上面示例中包含第一个elif的行。我对bash脚本不太了解,也无法通过Google找到任何帮助我发现自己做错了什么的东西。有人能帮我修改一下bash脚本吗?

最佳答案

将第二个条件更改为:

[[ "$MAJOR" -gt 4 || ( "$MAJOR" -eq 4 && "$MINOR" -ge 2 ) ]]

编辑:或更好:
(( MAJOR > 4 || ( MAJOR == 4 && MINOR >= 2) ))

关于bash - bash脚本中的“预期括号”错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23276707/

10-11 23:19
查看更多