【问题标题】:Compare variable with integer in shell? [duplicate]将变量与shell中的整数进行比较? [复制]
【发布时间】:2013-08-10 14:05:29
【问题描述】:

只要我存储在$counter 变量中的值大于5,我需要运行一个 if 语句。

这是我当前(无法运行)脚本的相应部分:

if $counter > 5
then
    echo "something"
fi

我犯的错误可能很明显,但由于某种原因我无法在网上找到解决方案.. 谢谢!

【问题讨论】:

    标签: bash shell


    【解决方案1】:

    这很简单:

    if [ "$counter" -gt 5 ]
    then
        echo "something"
    fi
    

    【讨论】:

    • 除非你需要sh的兼容性,否则最好使用[[]]而不是[]。见mywiki.wooledge.org/BashFAQ/031
    • 当然。这是为了兼容性,因为他没有在标题中提到 bash。
    • @konsolebox,您需要查看问题下方的标签。标题常常具有误导性。
    • 如果你使用bash(( counter > 5 )) 会更好。
    • @glennjackman 实际上我不确定是否每个标记bash 的人都知道bashsh 之间的区别。 (评论供参考)。
    【解决方案2】:

    需要在(())之间进行算术运算:

    if (( $counter > 5 ))
    

    顺便说一句,您也可以在算术中省略$,尽管保留它并没有什么坏处。

    【讨论】:

    • 是的,但是我认为条件表达式应该在[[ ]] 中完成。那么到底应该是哪一个呢?我会选择[[ ]]。在这里查看我的论点:stackoverflow.com/a/18568726/445221。 (评论供参考)。
    猜你喜欢
    • 2017-11-19
    • 1970-01-01
    • 1970-01-01
    • 2020-09-22
    • 1970-01-01
    • 2021-08-10
    • 2013-01-17
    • 2022-01-15
    相关资源
    最近更新 更多