bash脚本中的“预期括号”错误

时间:2014-04-24 18:15:02

标签: bash shell

我的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脚本吗?

1 个答案:

答案 0 :(得分:4)

将您的第二个条件更改为:

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

编辑:或更好:

(( MAJOR > 4 || ( MAJOR == 4 && MINOR >= 2) ))