bash shell中的数学计算
简介
在写shell脚本的时候会用到很多的数学运算,简单的一个游标+1 -1, 或者更多一点的浮点运算等,shell中数学计算稍麻烦,我想每个人都试过var=1+1 或者var=$xxx+1这类错误。 下面对shell中做数学计算小做总结
示例
- 使用expr整数运算
> var=1 > var=`expr $var + 1` > echo $var 2
其他的减乘除类似, 要注意乘法中的*号需要做转义\*即可
- 使用bash内建命令let
> var=2 > let "var=var+1" > echo $var 3 > let "var=(2+2-1)/2" > echo $var 1
- 使用大括号或者小括号
> var=3 > var=$((var+1)) > echo $var 4 > var=$[var+1] > echo $var 5
- 浮点运算可以用bc或者awk等程序
bc更常用, 对运算来说也更好用一些,可以直接命令行使用:
> bc bc 1.06 Copyright 1991-1994, 1997, 1998, 2000 Free Software Foundation, Inc. This is free software with ABSOLUTELY NO WARRANTY. For details type `warranty'. 1+1 2 1+1.1 2.1 1.1212*1.12 1.2557
也可以在标准输入作为输入,bc会把结果输出到标准输出:
> echo "2+1-5*1.111" | bc -2.555
还可以用here-doc的方式把表达式传给bc
> bc <<< "1+2+3+3.3333" 9.3333
bc在计算上还有很多强大的功能, 具体信息可以看下manpage,比如scale
> echo "scale=1;(1/3)" | bc .3 > echo "scale=10;(1/3)" | bc .3333333333
awk也可以做算数计算,也支持浮点计算:
> var=1 > var=`echo "$var 5"|awk '{printf("%g",$1+$2)}'` > echo $var 6
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· SQL Server 2025 AI相关能力初探
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库