📅  最后修改于: 2023-12-03 14:52:34.480000             🧑  作者: Mango
Shell 脚本一般只支持整数类型,但有时候我们需要比较浮点数,怎么办呢?
bc
是一款 Linux 下的高精度计算器,我们可以通过它来比较浮点数。具体方法如下:
#!/bin/bash
a=1.23
b=4.56
if [ $(echo "$a < $b" | bc) -eq 1 ]; then
echo "$a 小于 $b"
else
echo "$a 大于等于 $b"
fi
这里我们使用了 $(...)
语法来获取 echo
命令的输出,并且使用 bc
命令计算。-eq
表示判断两个数是否相等,如果相等则返回 1,否则返回 0。
awk
是一个强大的文本处理工具,它也可以用来比较浮点数。具体方法如下:
#!/bin/bash
a=1.23
b=4.56
if [[ $(awk '{print ($1 < $2) ? "true" : "false"}' <<< "$a $b") == "true" ]]; then
echo "$a 小于 $b"
else
echo "$a 大于等于 $b"
fi
这里我们使用 awk
命令来比较两个数的大小,并且使用 <<<
语法来将两个数传给 awk
命令。
Python
是一门强大的脚本语言,它也可以用来比较浮点数。具体方法如下:
#!/bin/bash
a=1.23
b=4.56
if python -c "print($a < $b)"; then
echo "$a 小于 $b"
else
echo "$a 大于等于 $b"
fi
这里我们使用了 python
命令来比较两个数的大小。我们可以在 shell 脚本中使用 python -c
来执行一条 Python
命令。
上面介绍了三种在 shell 脚本中比较浮点数的方法:
bc
;awk
;python
。你可以根据自己的需求来选择最适合你的方法。