在shell中做数值计算
更新:HHH   时间:2023-1-7


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}'
返回开发技术教程...