...">
瀏覽量:130次
linux系統(tǒng)下test命令是什么呢?下面是test命令的具體介紹:
1、test命令功能:用來檢查文件和比較值。
2、test命令使用:
判斷表達(dá)式:
if test? (表達(dá)式為真)
if test !表達(dá)式為假
test 表達(dá)式1 –a 表達(dá)式2? ? 兩個(gè)表達(dá)式都為真
test 表達(dá)式1 –o 表達(dá)式2? ? 兩個(gè)表達(dá)式有一個(gè)為真
判斷字符串:
test –n 字符串? ? ? ? ? ? ? ? ? 字符串的長度非零
test –z 字符串? ? ? ? ? ? ? ? ? ?字符串的長度為零
test 字符串1=字符串2? ? ? ? ? ? 字符串相等
test 字符串1?。阶址?? ? ? ? ?字符串不等
判斷整數(shù)
test 整數(shù)1 –eq 整數(shù)2??????????????????????? 整數(shù)相等
test 整數(shù)1 –ge 整數(shù)2??????????????????????? 整數(shù)1大于等于整數(shù)2
test 整數(shù)1 –gt 整數(shù)2???????????????????????? 整數(shù)1大于整數(shù)2
test 整數(shù)1 –le 整數(shù)2???????????????????????? 整數(shù)1小于等于整數(shù)2
test 整數(shù)1 –lt 整數(shù)2????????????????????????? 整數(shù)1小于整數(shù)2
test 整數(shù)1 –ne 整數(shù)2??????????????????????? 整數(shù)1不等于整數(shù)2
判斷文件
test? File1 –ef? File2??????????????????????????? 兩個(gè)文件具有同樣的設(shè)備號和i結(jié)點(diǎn)號
test? File1 –nt? File2??????????????????????????? 文件1比文件2 新
test? File1 –ot? File2??????????????????????????? 文件1比文件2 舊
test –b File?????????????????????????????????????????? 文件存在并且是塊設(shè)備文件
test –c File?????????????????????????????????????????? 文件存在并且是字符設(shè)備文件
test –d File?????????????????????????????????????????? 文件存在并且是目錄
test –e File?????????????????????????????????????????? 文件存在
test –f File??????????????????????????????????????????? 文件存在并且是正規(guī)文件
test –g File?????????????????????????????????????????? 文件存在并且是設(shè)置了組ID
test –G File?????????????????????????????????????????? 文件存在并且屬于有效組ID
test –h File?????????????????????????????????????????? 文件存在并且是一個(gè)符號鏈接(同-L)
test –k File?????????????????????????????????????????? 文件存在并且設(shè)置了sticky位
test –b File?????????????????????????????????????????? 文件存在并且是塊設(shè)備文件
test –L File?????????????????????????????????????????? 文件存在并且是一個(gè)符號鏈接(同-h)
test –o File?????????????????????????????????????????? 文件存在并且屬于有效用戶ID
test –p File?????????????????????????????????????????? 文件存在并且是一個(gè)命名管道
test –r File??????????????????????????????????????????? 文件存在并且可讀
test –s File?????????????????????????????????????????? 文件存在并且是一個(gè)套接字
test –t FD???????????????????????????????????????????? 文件描述符是在一個(gè)終端打開的
test –u File?????????????????????????????????????????? 文件存在并且設(shè)置了它的set-user-id位
test –w File????????????????????????????????????????? 文件存在并且可寫
test –x File?????????????????????????????????????????? 文件存在并且可執(zhí)行
3、工作原理:
test 命令最短的定義可能是評估一個(gè)表達(dá)式;如果條件為真,則返回一個(gè) 0 值。如果表達(dá)式不為真,則返回一個(gè)大于 0 的值 — 也可以將其稱為假值。檢查最后所執(zhí)行命令的狀態(tài)的最簡便方法是使用 $? 值。出于演示的目的,本文中的例子全部使用了這個(gè)參數(shù)。
test 命令期望在命令行中找到一個(gè)參數(shù),當(dāng) shell 沒有為變量賦值時(shí),則將該變量視為空。這意味著在處理腳本時(shí),一旦腳本尋找的參數(shù)不存在,則 test 將報(bào)告該錯(cuò)誤。
當(dāng)試圖保護(hù)腳本時(shí),您可以通過將所有參數(shù)包含在雙引號中來解決這個(gè)問題。然后 shell 將變量展開,如果變量沒有值,那么將傳遞一個(gè)空值給 test。另一種方法是在腳本內(nèi)增加一個(gè)額外檢查過程來判斷是否設(shè)置了命令行參數(shù)。如果沒有設(shè)置命令行參數(shù),那么腳本會(huì)告訴用戶缺少參數(shù),然后退出。
4、test 文件運(yùn)算符
利用這些運(yùn)算符,可以在程序中根據(jù)對文件類型的評估結(jié)果執(zhí)行不同的操作:
-b file 如果文件為一個(gè)塊特殊文件,則為真
-c file 如果文件為一個(gè)字符特殊文件,則為真
-d file 如果文件為一個(gè)目錄,則為真
-e file 如果文件存在,則為真
-f file 如果文件為一個(gè)普通文件,則為真
-g file 如果設(shè)置了文件的 SGID 位,則為真
-G file 如果文件存在且歸該組所有,則為真
-k file 如果設(shè)置了文件的粘著位,則為真
-O file 如果文件存在并且歸該用戶所有,則為真
-p file 如果文件為一個(gè)命名管道,則為真
-r file 如果文件可讀,則為真
-s file 如果文件的長度不為零,則為真
-S file 如果文件為一個(gè)套接字特殊文件,則為真
-t fd 如果 fd 是一個(gè)與終端相連的打開的文件描述符(fd 默認(rèn)為 1),則為真
-u file 如果設(shè)置了文件的 SUID 位,則為真
-w file 如果文件可寫,則為真
-x file 如果文件可執(zhí)行,則為真
?
[聲明]本網(wǎng)轉(zhuǎn)載網(wǎng)絡(luò)媒體稿件是為了傳播更多的信息,此類稿件不代表本網(wǎng)觀點(diǎn),本網(wǎng)不承擔(dān)此類稿件侵權(quán)行為的連帶責(zé)任。故此,如果您發(fā)現(xiàn)本網(wǎng)站的內(nèi)容侵犯了您的版權(quán),請您的相關(guān)內(nèi)容發(fā)至此郵箱【779898168@qq.com】,我們在確認(rèn)后,會(huì)立即刪除,保證您的版權(quán)。
官網(wǎng)優(yōu)化
整站優(yōu)化
渠道代理
400-655-5776