shell变量是弱类型的,且默认是字符串型,所以默认情况下无法进行数值计算。
解决方法如下:
declare主动声明变量类型
命令格式:declare [+/-] [选项] 变量名
选项: - :给变量设定类型属性
+ :取消变量的类型属性
-a :将变量声明为数组型
-i :将变量声明为整数型(integer)
-x :将变量声明为环境变量
-r :将变量声明为只读变量
-p:显示指定变量的被声明的类型
例子:a=1
b=2
declare -i c=$a+$b
#c的值为3,而不是"1+2"
声明数组变量
命令格式: bag[0]=ab 或declare -a bag[2]=dfs
查看数组变量
echo ${bag} #没有下标,查看第一个元素
echo ${bag[1]} #查看下标为1的元素
echo ${bag[*]}
#查看所有元素
数值运算方法
除了上面讲的declare -i方法,还有如下方法:
expr或let数值运算工具
例子:a=2
b=3
d=$(expr $a + $b) 注意: + 两侧必须有空格!
"$((运算式))"或"$[运算式]"
例子: a=3
b=5
c=$(($a+$b)) 或 c=$[$a+$b]