第一种,使用((表达式)):
a=3 ((b=a+2)) echo $b
第二种使用let:
let "c=$a+4" echo $c
第三种,使用expr表达式(注意空格不能少):
#注意空格和反引号 d=`expr 4 + 3` echo $d
第四种,比较常用,就是放在$[ expression]中,其实这才是bash的推荐的标准处理方法
a=4 b=$[$a-9] #b=-5 echo $b
在C风格的for循环中,则可以如下使用:
#!/bin/bash for (( a=1, b=10; a<=10; a++, b-- )) do ((c=a*b)) echo $c done
一般bash只能处理整数运算,要处理浮点书,必须借助于bc(bash计算器),基本格式如下:
variable=`echo "option;expression"|bc`
注意上面的反引号(一般位于tab建的上方,感叹号!的左边),不是单引号。
例如要计算3.25/3,精确到小数点后4位:
var=`echo "scale=4;3.25/3"|bc` #var=1.0833 echo $var
再看一个例子:
a=10.5 b=2.7 c=`echo "scale=5;$a /$b "|bc` #c=3.88888 echo $c
如果需要计算的浮点表达式比较多,可以放在多行上,格式如下:
variable=`bc << EOF options statements expressions EOF `
下面是一个实际例子:
#!/bin/bash a=1.23432 b=2.45 c=6.0 d=5 #注意: #var=ab+cd,ab和cd只是bc中的变量,不能在bash中使用 var=`bc << EOF scale=4 ab=($a+$b) cd=($c-$d) ab+cd EOF ` #var=4.68342 echo $var