1、文件的“類型”檢測, 如 test -e filename
-e 該“文件”是否存在(常用)(exist)
-f 該“文件”是否爲文件(file) (常用)
-d 該“文件”是否爲目錄(directory)
-b 該“文件”是否爲一個快設備(block)
-c 該“文件”是否爲一個字符設備(char)
-S 該“文件”是否爲一個套接字文件(socket)
-P 該“文件”是否爲一個FIFO(管道)文件(pipe)
-L 該“文件”是否爲一個連接文件。(link)
2、文件的“權限”檢測,如 test -r filename
-r 檢測該文件是否具有“可讀”屬性
-w 檢測該文件是否具有“可寫”屬性
-x 檢測該文件是否具有“可執行”屬性
-u 檢測該文件是否具有“SUID”屬性
-g 檢測該文件是否具有“SGID”屬性
-k 檢測該文件是否具有“Sticky bit”屬性
-s 檢測該文件是否爲“非空白文件”
3、比較兩個文件,如: test file1 -nt file2
-nt 判斷file1是否比file2新(newer than)
-ot 判斷file1是否比file2舊(older than)
-ef 判斷file1與file2是否爲同一個文件,可用於判斷硬鏈接。主要判斷兩個文件是否均指向通過一個inode。(equal file)
4、判斷字符串數據
test -z string 判斷字符串是否爲0,若string爲空字符串,則爲true
test -n string 判斷字符串是否非爲0,若string爲空字符串,則爲false
test str1 = str2 判斷str1是否等於test2,若相等,則回傳true(注意等號兩邊必須加空格)
test str != str2 判斷str1是否等於str2,若相等,則回傳false(注意不等號兩邊必須夾空格)
5、兩個整數之間的判斷,例如test n1 -eq n2
-eq 判斷兩數值相等(equal)
-ne 判斷兩數值不等(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)
6、多重條件判斷
-a (and)兩個條件同時成立。例如: test -r file -a -x file 若文件file具有可讀和可執行權限,則爲真。
-o (or)兩個條件任何一個成立。例如: test -r file -o -x file 則file具有r或x權限時,就可以回傳true
! 條件求反,如test ! -x file,當file 不具有x時,回傳true