为什么在AND_IF或“ &&”命令中不使用bc进行浮点比较是有效的

时间:2018-07-30 05:51:22

标签: bash shell

我能找到比较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的第二种方法如何工作。

0 个答案:

没有答案