我正在尝试执行简单的数学运算,检查变量是否大于或等于“1.5”
但我得到了[: 2.41: integer expression expected
代码:
reSum=$(expr "scale=1;555/230" | bc)
if [ $reSum -ge "1.5" ]; then
...
fi
如何在shell脚本中进行浮点比较?
答案 0 :(得分:8)
if echo 555 230 | awk '{exit $1/$2 >= 1.5 ? 0 : 1}'
then
# ...
fi
答案 1 :(得分:1)
编辑:
对我有用的最短解决方案:
reSum=$(expr "scale=1;555/230" | bc)
if (( `echo $reSum'>='1.5 | bc` )); then
# anything
fi
正如shellter所指出的,[ $(expr "$reSum > 1.5" | bc) ]
实际上进行了字典比较。
例如,expr "2.4 > 18 | bc" // =>0
。
但是,(( `echo $reSum'>='1.5 | bc` ))
进行浮点比较而不是字符串。