shell默认把变量作为字符串处理,数学运算不像其他语言那么简单。
常见的处理命令或操作符有expr, let, bc,[], (())。
expr
expr 不仅支持加减乘除运算,还支持与或大于小于等逻辑运算。
expr 1 + 2
var=`expr 1 + 2`
echo $var
方括号
方括号写起来要方便很多,但是和expr相同,都不支持浮点运算。
var=$[1 + 2]
echo $var
var2=$[$var + 3]
echo $var2
let
let后面表达式不能有空格,如果需要可以见引号,而expr运算量和运算符之间必须有空格。
let var=1+2
let var=var+3
let "var = var / 2"
echo $var
bc
如果需要支持浮点运算,可以使用bc命令。
var=`echo 1.5 + 1 | bc`
echo $var
参考文献:
[1] Linux命令行与Shell脚本编程大全 第2版