1.let
var = 1 let "var+=1" let v2=var*2 echo $var,$v2 #2,4
a.只支持整数运算
b.基本支持所有运算符(包括++,——,**)
c.表达式中使用变量可以不加$
d.一般情况下表达式可不加双引号,但当表达式中含有bash中的关键字,则需加上
2.expr
var=1 var=`expr $var + 1` echo $var #2
a.只支持整数运算
b.支持的操作符:|, &, <, <=, !=, >=, >, +, -, *, /, %
c.操作符 |, &, <, <=, >=, >, *需要使用转义
d.expr后的表达式各个符号之间需用空格隔开
3.bc
var=3.14 vap=`echo "scale=2;$var*3" | bc` echo $vap #9.42
a.支持除位运算之外的所有运算符
b.使用scale设置运算精度
4.(())
var=1 ((var+=1)) (("var*=2")) van=$((var*3)) echo $var, $van #4, 12
a.用法与let基本一致
b.把(())运算结果赋值时,前方需使用$
5.$[]
var=2 vas=$[$var+3] vat=$[var*3] echo $vas, $vat #5, 6
a.只支持整数运算
b.支持与let命令一致的运算符
c.$[]内部变量前的$可省略
6.awk(比较复杂,功能强大)
var=1 var=`echo "$var 5" | awk '{printf("%g", $1+$2)}'` echo $var #6