Shell 腳本 test 命令詳解


test命令在bash shell腳本中經常以中括號([])的形式出現,而且在腳本中使用字母來表示比符號表示更專業,出錯率更低。

測試標志 代表意義
文件名、文件類型
-e 該文件名是否存在
-f 該文件名是否存在且為file
-d 該文件名是否存在且為目錄
-b 該文件名是否存在且為一個block
-c 該文件名是否存在且為一個character device設備
-S 該文件名是否存在且為一個socket文件
-p 該文件名是否存在且為一個FIFO(pipe)文件
-L 該文件名是否存在且為一個連接文件
文件權限檢測
-r 檢測文件名是否存在且具有“可讀”權限
-w 檢測文件名是否存在且具有“可寫”權限
-x 檢測文件名是否存在且具有“可執行”權限
-u 檢測文件名是否存在且具有“SUID”權限
-g 檢測文件名是否存在且具有“SGID”權限
-k 檢測文件名是否存在且具有“Sticky bit”權限
-s 檢測文件名是否存在且為“非空白文件”
兩個文件的比較
-nt (newer than)判斷file1是否比file2新
-ot (older than)判斷file是否比file2舊
-ef 判斷file1與file2是否為同一個文件,可用在判斷hard link上
數字之間的判定
-eq equal
-ne not equal
-gt greater than
-lt less than
-ge greater than or equal
-le less than or equal
判斷字符串的數據
test -z string 判斷字符串是否為0,若為空返回true
test -n string 判斷字符串是否為0,若為空返回false
test str1 = str2 判斷str1是否等於str2,若相等,返回true
test str1 != str2 判斷str1是否等於str2,若相等,返回false
多重條件的判斷
-a 兩個條件同時成立,eg:test -r file a test -x file,同時成立返回true
-o 任何一個條件成立,eg:test -r file o test -x file,同時成立返回true
反向狀態,如test!-x file,當file不具有x時,返回true


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM