Linux Shell運算符

Linux Shell運算符

 

Shell中的運算符可分爲算數運算符、關係運算符、布爾運算符、字符串運算符和文件測試運算符

 

1.算術運算符

 

a=2, b=1

Operator Description Example
+ 加法 `expr $a + $b` # 3
- 減法 `expr $a - $b` # 1
* 乘法 `expr $a \* $b` # 2, *需轉義
/ 除法 `expr $a / $b' # 2
% 取餘 `expr $a % $b' # 0
= 賦值 name=value
== 相等比較 [ $a == $b ] # false
!= 不等比較 [ $a != $b ] # true 

 

注意:條件表達式要放在方括號之間,並且要有空格,例如 [$a==$b] 是錯誤的,必須寫成 [ $a == $b ]

2.關係運算符

關係運算符只支持數字,不支持字符串,除非字符串的值是數字 

 

a=1, b=2

Operator Description Example
-eq 判斷是否相等 [ $a -eq $b ] # false
-ne 是否不相等 [ $a -ne $b ] # true
-gt 是否大於 [ $a -gt $b ] # false
-lt 是否小於 [ $a -lt $b ] # true
-ge 是否大於等於 [ $a -ge $b ] # false
-le 是否小於等於 [ $a -le $b ] # true

 

 

3.布爾運算符

 

Operator Description Example
! 非運算 [ ! false ] 返回 true
-o 或運算 [ true -o false ] 返回true
-a 與運算 [ true -a false] 返回false

 

 

4.字符串運算符

 a=abc, b=def

Operator Description Example
= 是否相等 [ $a = $b ] # false
!= 是否不相等 [ $a != $b ] # true
-z 長度是否爲0 [ -z $a ] # false
-n 長度是否不爲0 [ -n $a ] # true
str 是否爲空 [ $a ] # false

 

 

5.文件測試運算符

 

文件測試運算符用於檢測 Unix 文件的各種屬性

 

Operator Description Example
-b file 是否是塊設備文件 [ -b $file ] 
-c file 是否是字符設備文件 [ -c $file ] 
-d file 是否是目錄 [ -d $file ]
-f file 是否是普通文件(既不是目錄,也不是設備文件) [ -f $file ] 
-g file 是否設置了 SGID 位 [ -g $file ] 
-k file 是否設置了粘着位(Sticky Bit) [ -k $file ]
-p file 是否是具名管道 [ -p $file ]
-u file 是否設置了 SUID 位 [ -u $file ]
-r file 是否可讀 [ -r $file ]
-w file 是否可寫 [ -w $file ]
-x file 是否可執行 [ -x $file ]
-s file 是否不爲空(文件大小是否大於0), 不爲空返回true [ -s $file ] 
-e file 文件(包括目錄)是否存在 [ -e $file ] 
發佈了50 篇原創文章 · 獲贊 16 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章