UNIX Shell 編程
一些條件判斷 總結
-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,則爲真 不爲空
不爲空儘量用! -z,而不是-n
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 若expr1和expr2都爲真則整式爲真 expr1 -o expr2 若expr1和expr2有一個爲真則整式爲真
特殊變量
$0 正在被執行命令的名字。對於shell腳本而言,這是被激活命令的路徑 $n 該變量與腳本被激活時所帶的參數相對應。n是正整數,與參數位置相對應($1,$2...) $# 提供腳本的參數號 $* 所有這些參數都被雙引號引住。若一個腳本接收兩個參數,$*等於$1$2 $@ 所有這些參數都分別被雙引號引住。若一個腳本接收到兩個參數,$@等價於$1$2 $? 前一個命令執行後的退出狀態 $$ 當前shell的進程號。對於shell腳本,這是其正在執行時的進程ID $! 前一個後臺命令的進程號
|