Shell常用运算符

Shell 中常用的运算符如下表所示:

表 1 Shell 中常用的运算符
优先级 运算符 说 明
13 -,+ 单目负、单目正
12 !,~ 逻辑非、按位取反或补码
11 *, /, % 乘、除、取模
10 +, - 加、减
9 <<, >> 按位左移、按位右移
8 <=, >=, <, > 小于或等于、大于或等于、小于、大于
7 == ,!= 等于、不等于
6 & 按位与
S ^ 按位异或
4 | 按位或
3 && 逻辑与
2 II 逻辑或
1 =,+=,•=,*=,/=,%=,&=, |=, <<=, >>= 赋值、运算且赋值


运算符优先级表明在每个表达式或子表达式中哪个运算对象首先被求值,数值越大优先级越高,具有较高优先级的运算符先于具有较低优先级的运算符进行求值运算。

【例 1】加减乘除

[root@localhost ~]# aa=$(( (11+3)*3/2))
#虽然乘和除的优先级高于加,但是通过小括号可以调整运算优先级
[root@localhost ~]# echo $aa
21


【例 2】取模运算

[root@localhost ~]# bb=$(( 14%3))
[root@localhost ~]# echo $bb 2
#14不能被3整除,余数是2


【例 3】逻辑与

[root@localhost ~]# cc=$(( 1 && 0))
[root@localhost ~]# echo $cc
0
#逻辑与运算只有相与的两边都是1,与的结果才是1;否则与的结果是0