基本形式:

((expression)),其等价于let "expression"。


$ foo=4


$ ((foo=foo+1))

$ echo $foo

5


$ let foo+=1

$ echo $foo

6


Bash中还提供了算数扩展(Arithmetic Expansion)。


基本形式:

$((expression)),其是在((expression))基础上,把返回结果赋值一个变量。


$ foo=$((foo+1))

$ echo $foo

7



另,若涉及到浮点数运算,数制转换等,可使用bc工具,其以命令行形式提供了标准的数学运算库。

$ echo "22/7" | bc

3


可通过特殊变量scale指定小数点后的位数(默认是0)。

$ echo "scale=3; 22/7" | bc

3.142


还提供了变量ibase,和obase指定输入输出的数制(默认是10)。

$ echo "ibase=10; obase=2; 4" | bc

100