- 關(guān)于某個(gè)文件名的“文件類(lèi)型”判斷,如test -e filename 表示存在否
- -e 該“文件名”是否存在?(常用)
- -f 該“文件名”是否存在且為文件(file)?(常用)
- -d 該“文件名”是否存在且為目錄(directory)?(常用)
- -b 該“文件名”是否存在且為一個(gè)block device 設(shè)備?
- -c 該“文件名”是否存在且為一個(gè)character device 設(shè)備?
- -S 該“文件名”是否存在且為一個(gè)Socket 文件?
- -p 該“文件名”是否存在且為一個(gè)FIFO (pipe) 文件?
- -L 該“文件名”是否存在且為一個(gè)鏈接文件?
- 關(guān)于文件的權(quán)限偵測(cè),如test -r filename 表示可讀否(但root 權(quán)限常有例外)
- -r 偵測(cè)該文件名是否存在且具有“可讀”的權(quán)限?
- -w 偵測(cè)該文件名是否存在且具有“可寫(xiě)”的權(quán)限?
- -x 偵測(cè)該文件名是否存在且具有“可執(zhí)行”的權(quán)限?
- -u 偵測(cè)該文件名是否存在且具有“SUID”的屬性?
- -g 偵測(cè)該文件名是否存在且具有“SGID”的屬性?
- -k 偵測(cè)該文件名是否存在且具有“Sticky bit”的屬性?
- -s 偵測(cè)該文件名是否存在且為“非空白文件”?
- 兩個(gè)文件之間的比較,如: test file1 - -nt file2
- -nt (newer than)判斷file1 是否比f(wàn)ile2 新
- -ot (older than)判斷file1 是否比f(wàn)ile2 舊
- -ef 判斷file1 與file2 是否為同一文件,可用在判斷hard link 的判定上。主要意義在判定,兩個(gè)文件是否均指向同一個(gè)inode 哩!
- 關(guān)于兩個(gè)整數(shù)之間的判定,例如test n1 -eq n2
- -eq 兩數(shù)值相等(equal)
- -ne 兩數(shù)值不等(not equal)
- -gt n1 大于n2 (greater than)
- -lt n1 小于n2 (less than)
- -ge n1 大于等于n2 (greater than or equal)
- -le n1 小于等于n2 (less than or equal)
- 判定字串的數(shù)據(jù)
- test -z string 判定字串是否為0 ?若string 為空字串,則為true
- test -n string 判定字串是否非為0 ?若string 為空字串,則為false。-n 亦可省略
- test str1 == str2 判定str1 是否等于str2 ,若相等,則回傳true
- test str1 != str2 判定str1 是否不等于str2 ,若相等,則回傳false
- 多重條件判定,例如: test -r filename -a -x filename
- -a (and)兩狀況同時(shí)成立!例如test -r file -a -x file,則file 同時(shí)具有r 與x 權(quán)限時(shí),才回傳true。
- -o (or)兩狀況任何一個(gè)成立!例如test -r file -o -x file,則file 具有r 或x 權(quán)限時(shí),就可回傳true。
- ! 反相狀態(tài),如test ! -x file ,當(dāng)file 不具有x 時(shí),回傳true
利用判斷符號(hào)[],
中括號(hào)的兩端需要有空白字符來(lái)分隔