比較兩個字串是否相等的辦法是:
if [ "$test"x = "test"x ]; then
這裡的關鍵有幾點:
1 使用單個等號
2 注意到等號兩邊各有乙個空格:這是unix shell的要求
3 注意到"tes
t"x最
後的x,
這是特意
安排的,
因為
當test"x最後的x,這是特意安排的,因為當
test"x
最後的x
,這是特
意安排的
,因為當
test為空的時候,上面的表示式就變成了x = testx,顯然是不相等的。而如果沒有這個x,表示式就會報錯:[: =: unary operator expected
二元比較操作符,比較變數或者比較數字.注意數字與字串的區別.
整數比較
-eq 等於,如:if [ 「a"−
eq
"a" -eq "
a"−eq"
b」 ]
-ne 不等於,如:if [ 「a"−
ne
"a" -ne "
a"−ne"
b」 ]
-gt 大於,如:if [ 「a"−
gt
"a" -gt "
a"−gt"
b」 ]
-ge 大於等於,如:if [ 「a"−
ge
"a" -ge "
a"−ge"
b」 ]
-lt 小於,如:if [ 「a"−
lt
"a" -lt "
a"−lt"
b」 ]
-le 小於等於,如:if [ 「a"−
le
"a" -le "
a"−le"
b」 ]
大於(需要雙括號),如:((「a
">
"a" > "
a">
"b」))
= 大於等於(需要雙括號),如:((「a注意:">="
a" >= "
a">="
b」))
小資料比較可使用awk
字串比較
= 等於,如:if [ 「a"=
"a" = "
a"="
b」 ]
== 等於,如:if [ 「a"=
="
a" == "
a"==
"b」 ],與=等價
注意:==的功能在和中的行為是不同的,如下:
1 [[ katex parse error: expected 'eof', got '#' at position 12: a == z* ]] #̲ 如果a以"z"開頭(模式匹配)那麼將為true
2 [[ katex parse error: expected 'eof', got '#' at position 14: a == "z*" ]] #̲ 如果a等於z*(字元匹配),那麼結果為true
34 [ katex parse error: expected 'eof', got '#' at position 11: a == z* ] #̲ file globbing …a" == 「z*」 ] # 如果a等於
z∗(字
符匹配)
,那麼結
果為tr
ue一點
解釋,關
於fil
eglo
bbin
g是一種
關於檔案
的速記法
,比如"
∗.c"
就是,再
如也是.
但是fi
legl
obbi
ng並不
是嚴格的
正則表達
式,雖然
絕大多數
情況下結
構比較像
.!=不
等於,如
:if[
"a等於z*(字元匹配),那麼結果為true 一點解釋,關於file globbing是一種關於檔案的速記法,比如"*.c"就是,再如~也是. 但是file globbing並不是嚴格的正規表示式,雖然絕大多數情況下結構比較像. != 不等於,如:if [ "
a等於z∗(
字元匹配
),那麼
結果為t
rue一
點解釋,
關於fi
legl
obbi
ng是一
種關於文
件的速記
法,比如
"∗.c
"就是,
再如也是
.但是f
ileg
lobb
ing並
不是嚴格
的正則表
達式,雖
然絕大多
數情況下
結構比較
像.!=
不等於,
如:if
["a" != 「b"]
這個操作
符將在[
[]]結
構中使用
模式匹配
.大於,
在asc
ii字母
順序下.
如:if
[[
"b" ] 這個操作符將在結構中使用模式匹配. 大於,在ascii字母順序下.如: if [[ "
b"]這個操
作符將在
[]結構中使
用模式匹
配.大於
,在as
cii字
母順序下
.如:i
f[["
a」 > 「b"]
]if[
"b" ]] if [ "
b"]]if
["a」 > 「$b」 ]
注意:在結構中">「需要被轉義.
具體參考example 26-11來檢視這個操作符應用的例子.
-z 字串為"null」.就是長度為0.
-n 字串不為"null"
使用-n在結構中測試必須要用"「把變數引起來.使用乙個未被」「的字串來使用! -z
或者就是未用」「引用的字串本身,放到結構中。雖然一般情況下可
以工作,但這是不安全的.習慣於使用」"來測試字串是一種好習慣.
shell 字串比較
比較兩個字串是否相等的辦法是 if test x test x then 這裡的關鍵有幾點 1 使用單個等號 2 注意到等號兩邊各有乙個空格 這是unix shell的要求 3 注意到 test x最後的x,這是特意安排的,因為當 test為空的時候,上面的表示式就變成了x testx,顯然是不相等...
Shell比較字串 數值
操作符解釋舉例 eq等於 if a eq b ne不等於 if a ne b gt 大於if a gt b ge大於等於 if a ge b lt小於 if a lt b le小於等於 if a le b 小於 需要雙括號 if a b 小於等於 需要雙括號 if a b 大於 需要雙括號 if a...
Shell數值 字串比較
僅用shell 能否讀取檔案中的第乙個數 二元比較操作符,比較變數或者比較數字.注意數字與字串的區別.整數比較 eq 等於,如 if a eq b ne 不等於,如 if a ne b gt 大於,如 if a gt b ge 大於等於,如 if a ge b lt 小於,如 if a lt b l...