在 bash 中比较整数和浮点数

AHa*_*ert 1 linux bash

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

if [ $? -eq 4.189 ];

这是行不通的,因为它希望 4.189 是一个整数,并且

if [ $? = 4.186 ];

因为我认为这可能有效。我也尝试过bc。有关如何执行此操作的任何提示?这里是 Bash 新手。非常感谢。

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

amd*_*mdn 5

这会起作用

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

或者简单地将文字放在引号中

#!/bin/bash
volume=4.189
if [[ $volume == "4.189" ]]; then
    echo Equal
else
    echo Not Equal
fi
Run Code Online (Sandbox Code Playgroud)

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