比较bash中的浮点值

时间:2015-04-29 23:58:18

标签: bash if-statement comparison bc

您好我想在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因为我也回应它,我可以看到它。

1 个答案:

答案 0 :(得分:1)

在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

相关问题