比较bash中的整数和浮点数

时间:2013-02-19 00:47:56

标签: linux bash

我正在尝试比较bash脚本中的整数和浮点数。我尝试过以下方法:

if [ $? -eq 4.189 ];

不起作用,因为它希望4.189是一个整数,而

if [ $? = 4.186 ];

因为我认为那可能有用。我也尝试过bc。关于如何做到这一点的任何提示?在这里猛击新手。非常感谢。

注意:$?是计算球体积的可执行文件的输出。

1 个答案:

答案 0 :(得分:3)

这将有效

#!/bin/bash
volume=4.189
if [[ $(echo "$volume == 4.189" | bc) -eq "1" ]]; then
    echo Equal
else
    echo Not Equal
fi

或简单地将文字放在引号

#!/bin/bash
volume=4.189
if [[ $volume == "4.189" ]]; then
    echo Equal
else
    echo Not Equal
fi

请注意,在我展示比较浮点的两种方式中,首选是使用bc,它会告诉你4.1890等于4.189而第二种方法是一个哑字符串比较,它们将比较不等。