1.数值运算与运算符
如果我们在linux中以一般的方式直接进行数值运算,就会出现以下结果:
shell默认,aa的值是字符串11,bb的值是字符串22,所以只是做了字符串的连接。
现在我们学习linux中的数值运算的方式。
1.1 declare声明变量类型
declare [+/-][选项] 变量名
选项:
-:给变量设定类型属性
+:取消变量的类型属性
-i:将变量声明为整数型(integer)
-x:将变量声明为环境变量
-p:显示指定变量的被声明的类型
我们测试一下:
这样可以确定把变量声明为环境变量,其实就是给这个变量赋予了declare的x属性。但是我们更加习惯使用export。
1.2数值运算
1.2.1 declare声明方式
可以使用declare声明来进行数值运算。
aa=11
bb=22
declare -i cc=$aa+$bb # 声明为整数型
echo $cc
我们进行测试查看:
1.2.2 expr数值运算工具
aa=11
bb=22
cc=$(expr $aa + $bb) # 加号两边必须有空格
echo $cc
1.2.3 $(( )) 或 $[ ]
aa=11
bb=22
cc=$(($aa+$bb)) # 以数值的方式运算
echo $cc
dd=$[$aa+$bb]
echo $dd
1.3 运算符
linux中支持的运算符,我们提出几个常用的:
优先级 | 运算符 | 说明 |
---|---|---|
11 | *、/、% | 乘、除、取模 |
10 | +、- | 加、减 |
8 | <、>、>=、<= | 小于,大于,大于等于,小于等于 |
7 | ==、!= | 等于、不等于 |
3 | && | 逻辑与 |
2 | || | 逻辑或 |
1 | =、+=、-=、*=、/=、%= | 赋值,运算且赋值 |
11优先级最高。1优先级最低。
测试:
aa=$(((11+3)*3/2)) # 乘除的优先级高于加,但是有小括号调整优先级
bb=$((14%3)) # 算余数
这就是常用的shell运算符了。