代码之家  ›  专栏  ›  技术社区  ›  Inder Manali

为什么float比较在a和“if”或“&&”命令中不使用bc

  •  0
  • Inder Manali  · 技术社区  · 8 年前

    我能找出比较shell中浮动的唯一方法是:

    A=12.3
    B=12.2
    if [ $(bc <<< "$B <= $A") -eq 1 ]
    

    据我所知,直接比较是不可能的。

    但奇怪的是,下面的代码比较了没有bc的float:

    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
    

    就我所知,只有当第一个命令以退出状态返回时才执行第二个命令。

    然而,正如我们在第二种方法中尝试使用负数的评论中的像素化学家建议的那样,它不起作用,并给出相反的结果。

    有人能解释一下没有BC的第二种方法是如何工作的吗?

    0 回复  |  直到 8 年前