Linux 數值與字元比較

2021-09-25 18:03:19 字數 1471 閱讀 8645

把字串當成整型進行比較,由於abcd等字元對不上0123當程式嘗試去轉成二進位制時無法完成轉換,所以用於數值比較的運算不能用於字串比較;但是把整型當成字串進行比較,0123這些數值完全可以轉成ascii碼而且原本兩個整型相等則變成ascii碼還是相等、不等的還是不等,所以可用於字串的比較也可用於整型的比較。

if語句中,數值比較的寫法是if [ $var1 -ge var

2];字

符串比較

的寫法是

if[「

var2 ];字串比較的寫法是if [ 「

var2];

字串比

較的寫法

是if[

「var1」 != 「var

2」],

其中加雙

引號只是

相容

var2」 ],其中加雙引號只是相容

var2」]

,其中加

雙引號只

是相容var2處為空的情況

在各種運算中,test命令的運算和中括號是等效的

賦值時等號兩邊沒空格,比較或測試時運算子兩邊都要有空格

shell預設是字元運算,如果想當數值進行運算要在前邊加上expr,如:var3=expr $var1 + $var2shell的檔案包含命令只有「.」,而且該命令只能一次包含單個檔案(當然可以用*表示資料夾下所有檔案)而不能包含乙個資料夾;所見的!includedir和#includedir並不存在這樣的命令,應該是程式自己實現的包含功能

「.」在shell中執行則會影響shell的環境,但如果只在指令碼中執行那只影響指令碼中的環境不會影響當前shell的環境;source其實也如此。

1.只適用於數值的比較

該型別操作會把兩邊變數當成整型進行加減運算,字串abcd按整型運算無法進行,所以此型別不能用於字串比較

引數 說明

-eq 等於則為真

-ne 不等於則為真

-gt 大於則為真

-ge 大於等於則為真

-lt 小於則為真

-le 小於等於則為真

2.適用於字串的比較(也可用於數值比較)

引數 說明

== 相等則為真

!= 不相等則為真

3.字串測試運算

引數 說明

-z 字串 字串的長度為零則為真

-n 字串 字串的長度不為零則為真

4.檔案測試運算

引數 說明

-e 檔名 如果檔案存在則為真

-r 檔名 如果檔案存在且可讀則為真

-w 檔名 如果檔案存在且可寫則為真

-x 檔名 如果檔案存在且可執行則為真

-s 檔名 如果檔案存在且至少有乙個字元則為真

-d 檔名 如果檔案存在且為目錄則為真

-f 檔名 如果檔案存在且為普通檔案則為真

-c 檔名 如果檔案存在且為字元型特殊檔案則為真

-b 檔名 如果檔案存在且為塊特殊檔案則為真

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 小於...

Linux Shell數值比較和字串比較及相關

說明 1.把字串當成整型進行比較,由於abcd等字元對不上0123當程式嘗試去轉成二進位制時無法完成轉換,所以用於數值比較的運算不能用於字串比較 但是把整型當成字串進行比較,0123這些數值完全可以轉成ascii碼而且原本兩個整型相等則變成ascii碼還是相等 不等的還是不等,所以可用於字串的比較也...

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...