比较 bash 中的浮点值
Comparing float values in bash
您好,我想比较 bash 中的 2 个浮点数,但我没有找到任何可以正常工作的东西。
我的实际代码如下:
if [ $(echo " 0.5 > $X " | bc -l )==1 ]
echo grande
fi
if [ "$(bc <<< "$X - 0.5")" > 0 ] ; then
echo 'Yeah!'
fi
出现的情况是无论X大于0.5还是小于0.5,它总是重复这两个句子,我不知道为什么。
我知道 X 大于或小于 0.5 因为我也回显它并且我可以看到它。
在bash中,您需要非常注意间距。例如:
if [ $(echo " 0.5 > $X " | bc -l )==1 ]; then
echo grande
fi
这里,==
两边没有空格,所以会被解释为:
if [ 0==1 ]; then
fi
信不信由你,这个条件总是成立的。
考虑:
if [ "$(echo " 0.5 > $X " | bc -l )" == 1 ]; then
echo grande
fi
.
您好,我想比较 bash 中的 2 个浮点数,但我没有找到任何可以正常工作的东西。 我的实际代码如下:
if [ $(echo " 0.5 > $X " | bc -l )==1 ]
echo grande
fi
if [ "$(bc <<< "$X - 0.5")" > 0 ] ; then
echo 'Yeah!'
fi
出现的情况是无论X大于0.5还是小于0.5,它总是重复这两个句子,我不知道为什么。 我知道 X 大于或小于 0.5 因为我也回显它并且我可以看到它。
在bash中,您需要非常注意间距。例如:
if [ $(echo " 0.5 > $X " | bc -l )==1 ]; then
echo grande
fi
这里,==
两边没有空格,所以会被解释为:
if [ 0==1 ]; then
fi
信不信由你,这个条件总是成立的。
考虑:
if [ "$(echo " 0.5 > $X " | bc -l )" == 1 ]; then
echo grande
fi
.