linux - 在 bash 中比较整数和 float

标签 linux bash

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

如果 [ $? -eq 4.189 ];

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

如果 [ $? = 4.186 ];

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

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

最佳答案

这会起作用

#!/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

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

关于linux - 在 bash 中比较整数和 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14947990/

相关文章:

linux - 即使授予读取权限也无法访问目录

linux - Linux上的TCP文件在哪里

linux - 了解 BSD 界面

bash - [[ ]] 和 [] 字符串比较器 "<"的不同结果

linux - 虽然导出 gg 我得到了未绑定(bind)的变量 gg

linux - 递归文件移动

linux - 如何从文件中读取行并根据逗号分隔进行拆分并分配变量名称

linux - Haxe 找不到标准库

parsing - awk 版本问题 - 将十六进制转换为十进制

linux - ./a.sh 和 ./a.sh 有什么区别? 。/灰?