【问题标题】:Bash Compare two variables, integer expression expected [duplicate]Bash比较两个变量,预期整数表达式[重复]
【发布时间】:2016-01-20 13:08:39
【问题描述】:

我在比较 2 个变量时遇到问题(从文件中读取一个变量)。

  1 #!/bin/bash
  2
  3 CFR=$(<bubble_status.txt)
  4 treshold=0.01
  5 echo $CFR
  6 echo $treshold
  7
  8 if [ "$CFR" -gt "$treshold" ]
  9 then
 10         echo "CFR is greater then treshold";
 11 elif [ "$CFR" -lt "$treshold" ]
 12 then
 13         echo "CFR is less than treshold";
 14 else
 15         echo "Something else";
 16 fi

但是 bash 会返回给我这个:

19.81
0.01
./dupa7.sh: line 8: [: 19.81: integer expression expected
./dupa7.sh: line 11: [: 19.81: integer expression expected
Something else

有什么想法吗?

【问题讨论】:

    标签: bash


    【解决方案1】:

    Bash 不支持浮点比较。你可以使用bc:

    if (( $(bc <<< "$CFR > $threshold") )); then
        echo "CFR is greater then threshold"
    fi
    

    【讨论】:

      【解决方案2】:

      Bash 不支持浮点运算。如果您想进行浮点比较/数学运算,请使用其他工具,例如 bcawk

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-11-19
      • 1970-01-01
      • 2016-04-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多