【问题标题】:Error in shell script: Integer expression expected [duplicate]shell脚本中的错误:需要整数表达式[重复]
【发布时间】:2018-07-12 22:09:07
【问题描述】:

我现在正在学习 shell 脚本。我开始学习如何使用更复杂的 if 语句。下面这段代码有什么问题?我在stackoverflow中阅读了其他类似的问题,但我无法解决我的问题。现在我正在验证第一个、第二个或第三个参数是否为空。将来我会假装根据一些正则表达式或类似的东西进行验证。
谢谢!!

代码(第 9 行):

if [ "$1" -eq "" ] || [ "$2" -eq "" ] || [ "$3" -eq "" ] then ...

第 9 行:[: : 整数表达式预期
第 9 行:[: : 整数 预期表达式
第 9 行:[: : 预期整数表达式

【问题讨论】:

    标签: bash shell


    【解决方案1】:

    -eq 执行两个数字之间的算术比较。使用= 进行字符串比较。或者更好的是,使用[[==

    [[ $1 == "" ]]
    [ "$1" = "" ]
    

    您也可以使用-z-n直接测试一个值是否为空/非空。

    [[ -n $value ]]    # [[ $value != "" ]]
    [[ -z $value ]]    # [[ $value == "" ]]
    

    【讨论】:

      【解决方案2】:

      对于更现代/更复杂的运算符,请使用 [[]]。这是一个bashism,所以要小心。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-07-12
        • 1970-01-01
        • 2013-07-31
        • 1970-01-01
        • 2013-10-07
        • 1970-01-01
        • 2018-12-29
        相关资源
        最近更新 更多