Shell 数学运算


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版