我在比较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
有什么想法吗?
答案 0 :(得分:2)
Bash不支持浮动比较。您可以使用bc
:
if (( $(bc <<< "$CFR > $threshold") )); then
echo "CFR is greater then threshold"
fi
答案 1 :(得分:-1)
Bash不支持浮点运算。如果要进行浮点比较/数学运算,请使用其他工具,例如bc
或awk
。