在嵌入式开发编写shell脚本的时候,经常会用到一些简单的shell数学计算,但是每次用完后就忘记了,又要上网查,这里对常用的计算方式进行总结。不过需要注意的是,因为嵌入式开发中使用的busyBox之类都是裁减过的,可能一些方式是不支持的,此时可以先对这些方法都进行一下测试,然后再选择可行的方法。
-
使用let计算
$ var=1;let "var+=1";echo $var
-
使用(())
$ var=1;((var+=1));echo $var
(())的使用方法与let关键字完全相同。
-
使用$[]
$ var=1;var=$[$var+1];echo $var
-
使用expr
$ var=1;var=`expr $var + 1`;echo $var
-
使用bc
bc是linux下的一个简单计算器,支持浮点数计算,在命令行下输入bc即进入计算器程序,而我们想在程序中直接进行浮点数计算时,利用一个简单的管道即可解决问题。
$ var=1;var=`echo "$var+1"|bc`;echo $var
- bc支持除位操作运算符之外的所有运算符。
- bc中要使用scale进行精度设置,如scale=2设置小数点2位精度
-
使用awk
awk是一种文本处理工具,同时也是一种程序设计语言,作为一种程序设计语言,awk支持多种运算,而我们可以利用awk来进行浮点数计算,和上面bc一样,通过一个简单的管道,我们便可在程序中直接调用awk进行浮点数计算。
$ var=1;var=`echo "$var 1"|awk '{printf("%g",$1+$2)}'`;echo $var