shell 浮点数比较大小
时间: 2023-07-24 17:04:40 浏览: 67
在shell中,使用`test`或`[`命令进行浮点数比较大小时,需要使用`bc`命令进行浮点数计算。比如,要比较`1.2`是否大于`3.4`,可以这样写:
```
if [ $(echo "$1.2 > $3.4" | bc) -eq 1 ]; then
echo "1.2 > 3.4"
else
echo "1.2 <= 3.4"
fi
```
其中,`echo "$1.2 > $3.4" | bc`表示将`1.2 > 3.4`作为字符串传递给`bc`命令进行浮点数计算,计算结果为`1`或`0`,`-eq 1`表示判断结果是否为`1`,如果是则`1.2`大于`3.4`,否则`1.2`小于等于`3.4`。
相关问题
shell 浮点数比较大小且 不用 bc命令
在shell中,可以使用 `awk` 命令来比较浮点数的大小,示例如下:
```shell
#!/bin/bash
# 浮点数比较大小
a=3.14
b=2.718
if awk 'BEGIN{exit !('$a'>'$b')}' ; then
echo "$a 大于 $b"
else
echo "$a 小于等于 $b"
fi
```
其中,`awk` 命令中的 `BEGIN` 关键字表示在开始执行之前执行一次,`exit` 表示退出一次 `awk` 命令,`!` 表示取反操作。在 `awk` 命令中,使用 `$a` 和 `$b` 分别表示变量 `a` 和 `b` 的值。通过将比较操作作为 `awk` 命令的参数,可以实现浮点数的比较。如果 `$a` 大于 `$b`,则 `exit` 返回 0,否则返回 1,这样就可以根据返回值判断大小关系。
shell 比较两个浮点数(包含负数)大小代码示例
在 shell 中,可以使用 `bc` 命令进行浮点数计算,然后再进行比较。
下面是比较两个浮点数大小的示例代码:
```bash
#!/bin/bash
# 第一个浮点数
a=-3.14
# 第二个浮点数
b=2.718
# 使用 bc 命令计算 a-b,结果保存到变量 c 中
c=$(echo "$a - $b" | bc)
# 比较 c 是否小于 0
if (( $(echo "$c < 0" | bc -l) )); then
echo "$a 小于 $b"
elif (( $(echo "$c > 0" | bc -l) )); then
echo "$a 大于 $b"
else
echo "$a 等于 $b"
fi
```
上面的代码中,我们首先定义了两个浮点数 `a` 和 `b`,然后使用 `bc` 命令计算了它们的差值,保存到变量 `c` 中。最后,使用 `bc -l` 选项进行比较,如果 `c` 小于 0,就说明 `a` 小于 `b`;如果 `c` 大于 0,就说明 `a` 大于 `b`;如果 `c` 等于 0,就说明 `a` 等于 `b`。