Linux Shell 06 数学运算

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
原文地址:https://www.cnblogs.com/techroad4ca/p/5444428.html