Bash比较两个变量,预期的整数表达式

时间:2016-01-20 13:08:39

标签: bash

我在比较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

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

Bash不支持浮动比较。您可以使用bc

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

答案 1 :(得分:-1)

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