bash中的数学运算并不如其他语言般简便,甚至bash本身不支持小数运算(需要额外指令bc)。
a=2
b=3
c=$[a+b]
d=$[a-b]
e=$[a*b]
f=$[a/b]
操作符左右可加空格。
利用expr
命令的反引用
#!/bin/bash
a=2
b=3
expr $a + $b
expr $a - $b
expr $a \* $b
expr $a / $b
#赋值
c=`expr $a + $b`
注意乘法运算时不能直接使用
*
,要转义\*
。因为*
在正则匹配中是全匹配的意思。
a=2
b=3
echo $(($a+$b))
echo $(($a-$b))
echo $(($a*$b))
echo $(($a/$b))
#赋值
c=$(($a/$b))
这个运算的操作符左右可以有空格
##自增自减
bash中也能实现自增自减,不过没有C语言中那么简便。bash需要借助let
工具来实现
i=1
let i++ #此时i=2
let i+=2 #此时i=4
没错,let除了能实现自增运算外,也能实现C语言中的复合赋值运算符