在shell中做数值计算

六眼飞鱼酱① 提交于 2019-12-17 18:01:33

shell自带的计算符号只能计算整数
例如:
echo $[1+1]
echo $((1+2))
还有let命令,expr命令
但是都并不好用,只能进行整数的运算,如果要计算小数,可以使用bc命令工具
另外其实除了bc,还可以使用awk来进行数值计算,功能更加强大,而且方便,因为awk本身就是一门编程语言,主要用于对文本的处理,对数据的处理自然不在话下!
要想使用awk计算,建议使用BEGIN模式,熟悉awk的人知道awk的命令行语法是这样的:
awk [选项] ‘BEGIN{执行语句...}{执行语句...}END{执行语句...}’ 文本文件
在单引号里面的三个大括号并不是都要同时有的,都是可选的。
BEGIN后面的大括号跟的是预处理语句,在执行时,并没有读取文本数据,一般就是定义初始化变量用的;中间的大括号是真正在处理文本的语句,END后面的大括号是处理完所有语句的输出总结。
如果用来做数值计算,可以用BEGIN模式就可以了,这样不需要跟任何标准输入
例如:

awk 'BEGIN{print 1.2+2}'
awk 'BEGIN{print 100-50}'
awk 'BEGIN{print 1.2*2}'
awk 'BEGIN{print 100/50}'
awk 'BEGIN{print 2**2}'
awk 'BEGIN{print 3+2*1}'
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!