Shell筆記(運算子 關係運算子 布林運算子)

2021-09-27 11:28:32 字數 1768 閱讀 8108

運算

語法:((運

算式))

、((表示式))、

((表示式)

)、[表示式]

expr a + b:加

expr a - b:減

expr a * b:乘`

expr a / b:除

expr a % b:求餘

a=b:將b的值賦給a

a == b:判斷a是否等於b,返回結果為布林值

a != b:判斷a是否不等於b,返回結果為布林值

注意:shell的字元型數值運算時,運算子與數值間存在空格,否則會被識別為乙個字串,而不是運算。

復合運算

# 符號``代替數**算中的()

expr `expr a+b` + c #等同數學中的(a+b)+c

expr `expr a /b` \* c #等同數學中的(a/b)*c

如:

#加

expr 1+2

#減expr 1-2

#乘expr 1 \* 2

#復合計算

expr `expr 2 + 3` \* 4

關係運算子

[ judgestatement ]

說明:其中judgestatement代表判斷表示式,前後與間必須均存在空格,判斷的結果以布林值作為返回值顯示。

數值比較

大於(-gt):[ a -ge b],判斷a是否大於b(>)。

小於(-lt):[ a -lt b],判斷a是否小於b(<)。

小於等於(-le):[ a -le b],判斷a是否小於等於b(<=)。

大於等於(-ge):[ a -ge b],判斷a和b是否相等(>=)。

相等(-eq):[ a -eq b],判斷a和b是否相等。

不相等(-ne):[ a -ne b],判斷a和b是否不相等。

如:

#這裡$?是根據最後一次執行的命令的返回值判斷是否產生了錯誤。0為正確,其他則為錯誤。

[ 23 -gt 22 ]

echo $? #正確,輸出為0

布林運算子

!:非運算,返回與結果相反的布林值。

如:

[ ! false ] 

echo $? #結果為ture

[ ! 23 -ge 22 ]

echo $? #結果為false

-o:或運算,存在乙個為真值的表示式則結果就為真。

如:

[ 表示式a -o 表示式b】

即表示式a或b只要存在乙個為真的,則結果為真。

[ 23 -gt 22 -o 1 -gt 2]

-a:與運算子,存在乙個為假值的表示式則結果就為假。

如:

[ 1 -ge 2 -a 3 -le 4 ]

Shell關係運算子

shell關係運算子只支援數值或數值型字串。運算子說明 檢測兩邊的值是否相等,若相等則返回true 檢測兩邊的值是否不相等,若不相等則返回true 檢測左邊的值是否大於右邊的值,若大於則返回true 檢測左邊的值是否小於右邊的值,若小於則返回true eq與 運算子作用相同 ne與 運算子作用相同 ...

shell 關係運算子

關係運算子只支援數字,不支援字串,除非字串的值是數字。下表列出了常用的關係運算子,假定變數 a 為 10,變數 b 為 20 運算子說明 舉例 eq 檢測兩個數是否相等,相等返回 true。a eq b 返回 false。ne檢測兩個數是否不相等,不相等返回 true。a ne b 返回 true。...

shell 中關係運算子

關係運算子只支援數字,不支援字串,除非字串的值是數字。運算子說明 舉例 eq 檢測兩個數是否相等,相等返回 true。a eq b 返回 false。ne檢測兩個數是否不相等,不相等返回 true。a ne b 返回 true。gt檢測左邊的數是否大於右邊的,如果是,則返回 true。a gt b ...