linux shell 编程:实现运算(expr、$((...))、bc计算浮点数) 作者:马育民 • 2025-11-20 10:52 • 阅读:10001 # 介绍 在 Shell 脚本中实现加法运算有多种方式,以下是几种常用且可靠的方法(适用于 Bash、Zsh 等主流 shell): ### 方法 1:使用 `$(( ))` 算术扩展(推荐) **优点:**简洁、高效、POSIX 兼容(在大多数 shell 中可用) **注意:**只支持整数运算 ```bash #!/bin/bash a=10 b=20 sum=$((a + b)) echo "结果: $sum" ``` ### 方法 2:使用 `expr` 命令 ```bash #!/bin/bash a=10 b=20 sum=$(expr $a + $b) echo "结果: $sum" ``` **注意:** - 运算符两边**必须有空格**(`+` 前后要空格) - 变量前用 `$` - 同样只支持整数 ### 方法 3:使用 `let` 命令(不推荐) ```bash #!/bin/bash a=10 b=20 let sum=a+b echo "结果: $sum" ``` 或 ```bash let "sum = a + b" ``` **注意:**`let` 是 Bash 内建命令,不兼容所有 POSIX shell(如 dash) ### 方法 4:浮点数加法(使用 `bc`) Shell 原生不支持小数,需借助 `bc`(计算器工具): 确保系统已安装 `bc`: ```bash # Ubuntu/Debian sudo apt install bc # CentOS/RHEL sudo yum install bc ``` 例子: ```bash #!/bin/bash a=3.14 b=2.86 sum=$(echo "$a + $b" | bc) echo "结果: $sum" ``` **提示:**可指定精度: ```bash sum=$(echo "scale=2; $a + $b" | bc) # 保留2位小数 ``` ### 总结 | 场景 | 推荐方法 | |------|--------| | 整数加法 | `$((a + b))` | | 浮点数加法 | `echo "$a + $b" | bc` | | 兼容老脚本 | `expr $a + $b`(注意空格) | **推荐**:优先使用 `$(( ))` 进行整数运算,简洁安全。 原文出处:http://malaoshi.top/show_1GW2GCrHohBY.html