我已经尝试了所有可能的组合来比较实数和整数,但它们似乎都失败了。
例如
if (( "10.0" == "10" )); then
echo "Joy"
else
echo "Damn it"
fi
我尝试过方括号,我试过没有引号,我试过-eq
,但那只是整数。所以不确定我应该如何在bash中完成这项工作。
答案 0 :(得分:2)
使用bc
:
if [[ $(echo "10.0 == 10" | bc) -eq 1 ]]; then
echo "Joy"
else
echo "Damn it"
fi
awk
也是可能的:
if awk -v op="10.0" 'BEGIN { exit !(op == 10) }'; then
答案 1 :(得分:1)
将两者都转换为float并进行字符串比较:
printf -v a "%f" 10.0
printf -v b "%f" 10
echo $a
echo $b
输出:
10.000000
10.000000