bash变量--数值运算与运算符

a=11
b=22
c=$a+$b
echo $c

上面这个脚本的输出结果会是什么呢?
是33吗?

可以看到结果是11+22,为什么呢?
因为在linux中,默认把所有的对象都当做字符串,所以把11和22都当成了字符串,不会进行数值运算

怎么才能使得上面的结果进行算数运算呢?有三种方法可以实现:

  • 声明变量c为整形
declare  [+/-]  [选项] 变量名
选项:
  -:给变量设定类型属性
  +: 取消变量的类型属性
  -i :将变量声明为整数型
  -x:将变量声明为环境变量
  -p:显示指定变量的被声明的类型

  • expr或let数值运算工具
d=$(expr $a + $b)
#注意+号左右必须有空格

let数值运算和expr差不对,这里不在赘述

  • $((运算式)) 或 $[运算式]

我们最常用的还是第三种(依据个人喜好而定)

运算符

运算符和其它语言中的计算方式一模一样,这里不在详细讲解。