Shell常用運算子

2020-07-16 10:04:34
Shell 中常用的運算子如下表所示:

表 1 Shell 中常用的運算子
優先順序 運算子 說 明
13 -,+ 單目負、單目正
12 !,~ 邏輯非、按位元取反或二補數
11 *, /, % 乘、除、取模
10 +, - 加、減
9 <<, >> 按位元左移、按位元右移
8 <=, >=, <, > 小於或等於、大於或等於、小於、大於
7 == ,!= 等於、不等於
6 & 按位元與
S ^ 按位元互斥或
4 | 按位元或
3 && 邏輯與
2 II 邏輯或
1 =,+=,•=,*=,/=,%=,&=, |=, <<=, >>= 賦值、運算且賦值


運算子優先順序表明在每個表示式或子表示式中哪個運算物件首先被求值,數值越大優先順序越高,具有較高優先順序的運算子先於具有較低優先順序的運算子進行求值運算。

【例 1】加減乘除

[[email protected] ~]# aa=$(( (11+3)*3/2))
#雖然乘和除的優先順序高於加,但是通過小括號可以調整運算優先順序
[[email protected] ~]# echo $aa
21


【例 2】取模運算

[[email protected] ~]# bb=$(( 14%3))
[[email protected] ~]# echo $bb 2
#14不能被3整除,餘數是2


【例 3】邏輯與

[[email protected] ~]# cc=$(( 1 && 0))
[[email protected] ~]# echo $cc
0
#邏輯與運算只有相與的兩邊都是1,與的結果才是1;否則與的結果是0