bash - 如何比较 bash/awk 中的两个十进制数?

标签 bash shell awk

我正在尝试比较两个十进制值,但出现错误。 我用过

if [ "$(echo $result1 '>' $result2 | bc -l)" -eq 1 ];then

根据其他 Stack Overflow 线程的建议。

我遇到错误。

解决这个问题的正确方法是什么?

最佳答案

您可以使用 Bash 的数字上下文来做到这一点:

if (( $(echo "$result1 > $result2" | bc -l) )); then

bc 将输出 0 或 1,(( )) 将分别将它们解释为 false 或 true。

使用 AWK 同样的事情:

if (( $(echo "$result1 $result2" | awk '{print ($1 > $2)}') )); then

关于bash - 如何比较 bash/awk 中的两个十进制数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11237794/

相关文章:

linux - Bash - 计算字符串中的子字符串

bash 错误 : syntax error: operand expected (error token is ")

git - 如何找到 Git 存储库中所有有冲突的 merge ?

shell - 使用 awk 和并行同时处理多个文件

bash - 多行输出到带分隔符字符串的单行连接

bash - 为什么我的shell脚本不能正常工作?

bash:如何传递包含特殊字符的密码

c++ - 编写一个可以嵌入其他应用程序并作为单独进程运行的 shell

shell - zsh 根据一个参数补全

linux - 在 bash 中使用先前命令的输出