①$[]
$[ $a operator $b ]
例: a=2;b=3;
echo $[ $a + $b] # 5
echo $[$a-$b] #-3
echo $[++$a-$b] #0
c=$[$a+$b] # √ c=6
d=$[a+b] # 6
备注:除了自加自减运算符其他都支持;只能进行整数运算;++在操作数前面时不会报错也不会自加;$[]会输出运算结果
②let
let a=b+c
例:a=1;b=2;
let c=a+b;echo $c # 3
let c=++a+b;echo $c # 4
c=let a+b # × let不会输出计算结果
echo `let a+b` # ×
备注:几乎支持所有运算符;表达式中的变量不加$;一般情况下表达式不用加双引号,但是如果表达式中有bash关键字则需加上;只能进行整数运算;let 不会输出运算结果,赋值需要在表达式中进行;bash内建命令
③[$](( ))
例:
a=3;
((b=a+2));echo $b # 5
echo ((a+5)) 或者 c=((a+3)) # -bash: syntax error near unexpected token `(‘
echo $((a+5)) 或者 c=$((a+3));echo $c # 8 或 6
备注:用法与let完全相同;如果前面有$符号,则结果输出,否则结果不输出
④bc
例:
f=`echo 3+1|bc`;echo $f # 4
touch f;echo 3+4 > f;cat f |bc # 7
备注:支持浮点数计算;支持除位运算之外的所有运算;通过scale进行精度设置
⑤expr
例:
a=3;
b=`expr $a + 3`;echo $b # 6
备注:需要对部分操作符进行转义;操作符与操作数之间需用空格隔开;只支持整数运算