Linux Shell運算子總結

2021-09-02 18:34:16 字數 2056 閱讀 2715

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 和 如果單獨...