shell中的運算子可分為算數運算子、關係運算子、布林運算子、字串運算子和檔案測試運算子
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 ]
關係運算子只支援數字,不支援字串,除非字串的值是數字
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
operator
description
example
!非運算
[ ! false ] 返回 true
-o或運算
[ true -o false ] 返回true
-a與運算
[ true -a false] 返回false
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
檔案測試運算子用於檢測 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 ]
Linux shell 基本運算子
shell 運算子包括 算數運算子 關係運算子 布林運算子 字串運算子 檔案測試運算子。expr 是一款表示式計算工具,它能做表示式的求值操作。算術運算子 下表列出了常用的算術運算子,假定變數 a 為 10,變數 b 為 20 運算子 說明 舉例 加法 expr a b 結果為 30。減法 expr...
linux shell 邏輯運算子
一 邏輯卷標 邏輯卷標 表示意思 1.關於檔案與目錄的偵測邏輯卷標!f常用!偵測 檔案 是否存在 eg if f filename d常用!偵測 目錄 是否存在 b偵測是否為乙個 block 檔案 c偵測是否為乙個 character 檔案 s偵測是否為乙個 socket 標籤檔案 l偵測是否為乙個...
運算子總結
1,算術運算子 加或正號 減或負號 乘 除,得到的是商 取餘 自增 自減 字串連線符 注意 a 整數相除結果還是整數 b 從左向右依次運算 c 兩個運算元,分為左邊和右邊 左邊小於右邊,結果是左邊 左邊等於右邊,結果為0 左邊大於右邊,結果是餘數 最終的餘數的符號和左邊的運算元一直 d 和 如果單獨...