比较 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,它总是呼应两个句子,我不知道为什么。我知道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

.

相关内容

  • 没有找到相关文章

最新更新