Shell 條件判斷總結

roninwei發表於2008-04-20

-b file 若檔案存在且是一個塊特殊檔案,則為真

-c file 若檔案存在且是一個字元特殊檔案,則為真

-d file 若檔案存在且是一個目錄,則為真

-e file 若檔案存在,則為真

-f file 若檔案存在且是一個規則檔案,則為真

-g file 若檔案存在且設定了SGID位的值,則為真

-h file 若檔案存在且為一個符合連結,則為真

-k file 若檔案存在且設定了"sticky"位的值

-p file 若檔案存在且為一已命名管道,則為真

-r file 若檔案存在且可讀,則為真

-s file 若檔案存在且其大小大於零,則為真

-u file 若檔案存在且設定了SUID位,則為真

-w file 若檔案存在且可寫,則為真

-x file 若檔案存在且可執行,則為真

-o file 若檔案存在且被有效使用者ID所擁有,則為真

-z string string長度為0,則為真

-n string string長度不為0,則為真

string1 = string2 若兩個字串相等,則為真

string1 != string2 若兩個字串不相等,則為真

int1 -eq int2 int1等於int2,則為真

int1 -ne int2 int1不等於int2,則為真

int1 -lt int2 int1小於int2,則為真

int1 -le int2 int1小於等於int2,則為真

int1 -gt int2 int1大於int2,則為真

int1 -ge int2 int1大於等於int2,則為真

!expr expr為假則複合表示式為真。expr可以是任何有效的測試表示式

expr1 -a expr2 expr1expr2都為真則整式為真

expr1 -o expr2 expr1expr2有一個為真則整式為真

特殊變數

$0 正在被執行命令的名字。對於shell指令碼而言,這是被啟用命令的路徑

$n 該變數與指令碼被啟用時所帶的引數相對應。n是正整數,與引數位置相對應($1,$2...)

$# 提供指令碼的引數號

$* 所有這些引數都被雙引號引住。若一個指令碼接收兩個引數,$*等於$1$2

$@ 所有這些引數都分別被雙引號引住。若一個指令碼接收到兩個引數,$@等價於$1$2

$? 前一個命令執行後的退出狀態

$$ 當前shell的程式號。對於shell指令碼,這是其正在執行時的程式ID

$! 前一個後臺命令的程式號

原文地址 http://ansan.spaces.live.com/blog/cns!83f6b9c8443599bf!125.entry

[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7507082/viewspace-1002777/,如需轉載,請註明出處,否則將追究法律責任。

相關文章