Shell-算术运算

由于shell的所有变量默认都是字符型,所以shell的算术运算需要对变量进行特殊声明.

var1=1
var2=2
var3={var1}+{var2}
echo ${var3}

以上代码输出的结果是1+2,可以看到只是单纯的字符串拼接,并没有做任何的算术运算.

decalre

若要参与运算,可以使用命令declare.

declare usage:

declare [-aAfFgilnrtux] [-p] [name[=value] …]
– -:给变量设定类型属性;
– +:取消变量的类型属性;
– -a:将变量声明为数组型;
– -i:将变量声明为整数型(integer);
– -r:将变量声明为只读变量。注意,一旦设置为只读变量,既不能修改变量的值,也不能删除变量,甚至不能通过 +r 取消只读属性;
– -x:将变量声明为环境变量;
– -p:显示指定变量的被声明的类型;

var1=1
var2=2
declare -i var3={var1}+{var2}
echo ${var3}

expr

也可以使用命令expr进行运算.

var1=1
var2=2
# 运算符前后必须要有空格
var3=(expr{var1} + {var2})
echo{var3}

let

还能使用命令let进行运算.

var1=1
var2=2
# 运算符前后不能有空格
let var3={var1}+{var2}
echo ${var3}

$(())和$[]运算方式

使用$(()):

var1=1
var2=2
var3=(({var1} + {var2}))
echo{var3}

使用$[]:

var1=1
var2=2
var3=[{var1} + {var2}]
echo{var3}