shell程式設計(五)條件判斷

loophome發表於2015-10-16
這裡所說的條件判斷是對變數的大小、字串、檔案屬性等內容進行判斷。

test命令可以用於字串、數字、檔案狀態等內容的測試。

檔案狀態:

指的是對檔案的許可權、有無、屬性、型別等內容進行判斷。與其他語言不同的是,test命令的測試結果,返回0時表示測試成功。返回1時表示測試失敗。

數值比較:

指的是比較兩個數值的大小或相等關係,相當於c語言中的比較運算子。shell程式中的數值測試有下面兩種形式。
1、test命令和相應的引數可以對兩個數值的關係進行測試,使用方法如下所示。
test  第一個運算元  數值比較符 第二個運算元  
2、用中括號代替test命令。這種方法和test命令的原理相同,使用方法如下所示。
 [ 第一個運算元  數值比較符 第二個運算元  ]


邏輯比較:

指的是將多個條件進行邏輯運算,常用作迴圈語句或判斷語句的條件。shell程式中有下面三種邏輯測試。
-a:邏輯與,操作符兩邊均為真時結果為真,否則為結果為假。
-o:邏輯或,操作符兩邊至少一個為真時,結果為真,否則為假。
! :邏輯否,只有條件為假時,返回結果為真。

字串比較:

指的是比較兩個字串是否相等,或者判斷一個字串是否為空。這種判斷常用來測試使用者輸入是否符合程式的要求。字串測試有下面4中常用的方法。
test字串比較符 字串
test  字串1  字串比較符  字串2
[ 字串比較符 字串 ]
[ 字串1  字串比較符  字串2 ]
字串比較符有如下所示的4種。
=:測試兩個字串是否相等。
!=:測試兩個字串是否不相等。
-z:測試字串是空字串。
-n:測試字串是非空字串。

例如判斷字串str非空:[ -z $str ]


相關文章