shell條件判斷式語句

條件判斷式格式,有兩種形式,
1. test 條件表達式(利用test命令來判斷條件表達式)
2. [ 條件表達式 ] (將判斷表達式用中括號括起來,注意條件表達式兩邊的空格不能省略)
這兩種形式都能完成條件判斷的功能,方便起見,我們一般使用中括號來對條件表達式進行判斷。
能判斷的種類有:
1. 文件類型: [ 選項 文件名 ]
選項有:
-e:文件存在(exist),返回真
-d:文件存在且爲目錄文件(directory),返回真
-f:文件存在且爲普通文件(regular file),返回真
-b:文件存在且爲塊設備文件(block),返回真
-c:文件存在且爲字符設備文件(char),返回真
-L:文件存在且爲符號鏈接文件(symbolic link),返回真
-P:文件存在且爲命令管道文件(named pipe),返回真
-s:文件存在且爲內容爲非空文件(這個參數很特殊,英文沒發對應),返回真
-S:文件存在且爲套接字文件(Socket),返回真
2. 文件權限:[ 選項 文件名 ]
選項有:
-r:文件存在且權限爲只讀,返回真
-w:文件存在且權限爲只寫,返回真
-x:文件存在且爲可執行文件,返回真
-u:文件存在且有SUID權限,返回真
-g:文件存在且有SGID權限,返回真
-k:文件存在且有SBIT權限(sticky bit),返回真。SBIT(防刪除)權限與只讀權限(沒有寫權限)不同,防刪除權限不允許用戶刪除文件但允許用戶添加文件,而只讀權限(沒有寫權限)不僅不允許用戶刪除文件,也不允許用戶添加文件。
3. 文件之間進行比較:[ 文件1 選項 文件2 ]
選項有:
-nt:(newer than),文件1存在且文件1比文件2新(修改時間),返回真
-ot:(older than),文件1存在且文件1比文件2老(修改時間),返回真
-ef:文件1和文件2存在且擁有相同的inode號,返回真
4. 整數之間進行比較:[ 整數1 選項 整數2 ]
選項有:
-eq:(equal),整數1與整數2相等,返回真
-ne:(not equal),整數1與整數2不相等,返回真
-gt:(greater than),整數1比整數2大,返回真
-lt:(less than),整數1比整數2小,返回真
-ge:(greater than or equal),整數1大於或等於整數2,返回真
-le:(less than or equal),整數1小於或等於整數2,返回真
因爲選項已經是數值比較,所以系統會自動將數字字符串轉化爲數值進行比較。
5. 字符串之間比較:[ 字符串1 選項 字符串2 ]
選項有:
-z:(zero),如果字符串長度爲零,返回真
-n:(nonzero),如果字符串長度非零, 返回真
!=:字符串1與字符串2不相等,返回真
=:字符串1與字符串2相等,返回真(雙等於號==有同樣的判斷效果)
<:根據字典序,字符串1小於字符串2,返回真
>:根據字典序,字符串1大於字符串2,返回真
6. 多重條件判斷(邏輯運算): [ 表達式1 邏輯選項 表達式2 ]
邏輯選項有:
-a:表示邏輯且
-o:表示邏輯或
!:表示邏輯非
若有不對之處,敬請指正。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章