我能找到比较shell中浮点数的唯一方法是:
A=12.3
B=12.2
if [ $(bc <<< "$B <= $A") -eq 1 ]
据我所知,没有发生直接比较。
但奇怪的是,以下代码比较了不带bc的浮点数:
A=13.7
B=13.2
[[ $A > $B ]] && echo "A is greater than B"
[[ $A < $B ]] && echo "A is less than B"
这将返回:
A is greater than B
据我所知,&&仅在第二条命令返回退出状态为零时才执行第二条命令。
但是,正如Pixel Chemist在评论中所建议的,如果我们尝试在第二种方法中使用负数,则该方法将无效并给出相反的结果。
有人可以解释没有BC的第二种方法如何工作。