【问题标题】:Arithmetic comparison in a shellshell中的算术比较
【发布时间】:2018-07-21 20:45:24
【问题描述】:

我想在 shell 脚本 (sh) 中比较两个数值,但它不起作用:

#!/bin/sh
let a=30
let b=100
let x=$a-$b
echo $a $b $x
[ $a < $b ] && { echo ok; }

输出:

30 100 -70
./x: line 6: 100: No such file or directory

【问题讨论】:

    标签: shell


    【解决方案1】:

    我认为应该是-lt(代表小于)而不是“

    编辑:实际上现在看这个似乎很清楚问题是什么。 “

    【讨论】:

      【解决方案2】:

      将

      另外,不要使用“让”。这不是基本的。比尔盖茨和史蒂夫鲍尔默(开发者!)与这个宇宙无关。

      【讨论】:

        【解决方案3】:

        "let" 在 shell 中完全没问题,与 M$ basic 或什么无关。! @OP ,您可以使用 bc 比较数字,尤其是在比较浮点数时。类似的例子见here

        【讨论】:

          【解决方案4】:
          #!/bin/sh
          let a=30
          let b=100
          let x=$a-$b
          echo $a $b $x
          if(($a < $b)) then 
            echo ok
          fi
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2015-12-20
            • 2016-04-25
            • 1970-01-01
            • 2021-10-27
            • 2019-11-07
            • 2016-09-16
            • 2021-11-03
            • 1970-01-01
            相关资源
            最近更新 更多