1、算数运算符
算数运算符主要是加、减、乘、除、余、幂等常见的算术运算,以及加等、减等、乘等、除等、余等复合算术运算。
注意:Shell只支持整数运算,小数部分会舍去。一般情况下算术运行需要个let命令一起来使用。注意除法运算,除数不能为0。
比如:
#常规运算符
let 1+9
let 20-10
let 2*5
let 9/3
let 10%4
let 2**3
#符合运算符
x=8 x+=2 变量结果为 10,其余用法类似
2、位运算符
位运算是基于内存中二进制数据的运算,也就是基于位的运算。常见的位运算有左移运算、右移运算、按位与、按位或、按位非、按位异或等运算。
位元素的左移右移其实就是整数内存中的左右移动。左移<<,右移>>.
比如十进制4在内存中排列如下:00000100
用法:
let "value=4<<2"
echo ${value}
输出:16
let "value=4>>2"
echo ${value}
输出:1
按位与运算(&)是将两个整数写出二进制形式,然后同位置相比较,只有对于位置的二进制值都为1结果才是1,否则0.比如:8&4
00000100 #4
00001000 #8
00000000 #8&4结果 0
按位或运算(|),将两个整数写出二进制形式,然后同位置相比较,只要对应的位置有1则结果就为1。比如:8|4
00000100 #4
00001000 #8
00001100 #8|4结果12
按异或运算将两个整数写出二进制形式,只要对应的位置同为1或者同为1结果就是0,否则为1。比如:10^3 来说
00001010 #10
00000011 #3
00001001 #10^3 结果 9
按位非(~)有快捷的公式进行计算 ~a 值位"-(a+1)"
比如:let "value=~8"
echo ${value}
-9