test命令 linux
- IT科技
- 關注:1.22W次
1、test命令功能:用來檢查檔案和比較值。
2、test命令使用:
判斷表達式:
if test (表達式爲真)
if test !表達式爲假
test 表達式1 –a 表達式2 兩個表達式都爲真
test 表達式1 –o 表達式2 兩個表達式有一個爲真
判斷字元串:
test –n 字元串 字元串的長度非零
test –z 字元串 字元串的長度爲零
test 字元串1=字元串2 字元串相等
test 字元串1!=字元串2 字元串不等
判斷整數
test 整數1 –eq 整數2 整數相等
test 整數1 –ge 整數2 整數1大於等於整數2
test 整數1 –gt 整數2 整數1大於整數2
test 整數1 –le 整數2 整數1小於等於整數2
test 整數1 –lt 整數2 整數1小於整數2
test 整數1 –ne 整數2 整數1不等於整數2
判斷檔案
test File1 –ef File2 兩個檔案具有同樣的設備號和i結點號
test File1 –nt File2 檔案1比檔案2 新
test File1 –ot File2 檔案1比檔案2 舊
test –b File 檔案存在並且是塊設備檔案
test –c File 檔案存在並且是字元設備檔案
test –d File 檔案存在並且是目錄
test –e File 檔案存在
test –f File 檔案存在並且是正規檔案
test –g File 檔案存在並且是設定了組ID
test –G File 檔案存在並且屬於有效組ID
test –h File 檔案存在並且是一個符號連結(同-L)
test –k File 檔案存在並且設定了sticky位
test –b File 檔案存在並且是塊設備檔案
test –L File 檔案存在並且是一個符號連結(同-h)
test –o File 檔案存在並且屬於有效用戶ID
test –p File 檔案存在並且是一個命名管道
test –r File 檔案存在並且可讀
test –s File 檔案存在並且是一個套接字
test –t FD 檔案描述符是在一個終端開啟的
test –u File 檔案存在並且設定了它的set-user-id位
test –w File 檔案存在並且可寫
test –x File 檔案存在並且可執行
3、工作原理:
test 命令最短的定義可能是評估一個表達式;如果條件爲真,則返回一個 0 值。如果表達式不爲真,則返回一個大於 0 的值 — 也可以將其稱爲假值。檢查最後所執行命令的狀態的最簡便方法是使用 $? 值。出於演示的目的,本文中的例子全部使用了這個參數。
test 命令期望在命令行中找到一個參數,當 shell 沒有爲變量賦值時,則將該變量視爲空。這意味着在處理腳本時,一旦腳本尋找的參數不存在,則 test 將報告該錯誤。
當試圖保護腳本時,您可以透過將所有參數包含在雙引號中來解決這個問題。然後 shell 將變量展開,如果變量沒有值,那麼將傳遞一個空值給 test。另一種方法是在腳本內增加一個額外檢查過程來判斷是否設定了命令行參數。如果沒有設定命令行參數,那麼腳本會告訴用戶缺少參數,然後退出。
4、test 檔案運算符
利用這些運算符,可以在程序中根據對檔案類型的評估結果執行不同的操作:
-b file 如果檔案爲一個塊特殊檔案,則爲真
-c file 如果檔案爲一個字元特殊檔案,則爲真
-d file 如果檔案爲一個目錄,則爲真
-e file 如果檔案存在,則爲真
-f file 如果檔案爲一個普通檔案,則爲真
-g file 如果設定了檔案的 SGID 位,則爲真
-G file 如果檔案存在且歸該組所有,則爲真
-k file 如果設定了檔案的粘着位,則爲真
-O file 如果檔案存在並且歸該用戶所有,則爲真
-p file 如果檔案爲一個命名管道,則爲真
-r file 如果檔案可讀,則爲真
-s file 如果檔案的長度不爲零,則爲真
-S file 如果檔案爲一個套接字特殊檔案,則爲真
-t fd 如果 fd 是一個與終端相連的開啟的檔案描述符(fd 默認爲 1),則爲真
-u file 如果設定了檔案的 SUID 位,則爲真
-w file 如果檔案可寫,則爲真
-x file 如果檔案可執行,則爲真
- 文章版權屬於文章作者所有,轉載請註明 https://shqsg.com/zh-hant/dianzi/eqkvv6.html