Linux shell中的test命令用法教程
test命令
test命令是shell環(huán)境中測試條件表達(dá)式的實(shí)用工具,下面來看看test命令的用法介紹:
語法
test(選項(xiàng))
選項(xiàng)
- -b<文件>:如果文件為一個(gè)塊特殊文件,則為真;
- -c<文件>:如果文件為一個(gè)字符特殊文件,則為真;
- -d<文件>:如果文件為一個(gè)目錄,則為真;
- -e<文件>:如果文件存在,則為真;
- -f<文件>:如果文件為一個(gè)普通文件,則為真;
- -g<文件>:如果設(shè)置了文件的SGID位,則為真;
- -G<文件>:如果文件存在且歸該組所有,則為真;
- -k<文件>:如果設(shè)置了文件的粘著位,則為真;
- -O<文件>:如果文件存在并且歸該用戶所有,則為真;
- -p<文件>:如果文件為一個(gè)命名管道,則為真;
- -r<文件>:如果文件可讀,則為真;
- -s<文件>:如果文件的長度不為零,則為真;
- -S<文件>:如果文件為一個(gè)套接字特殊文件,則為真;
- -u<文件>:如果設(shè)置了文件的SUID位,則為真;
- -w<文件>:如果文件可寫,則為真;
- -x<文件>:如果文件可執(zhí)行,則為真。
實(shí)例
linux中shell編程中的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 表達(dá)式1 ! 表達(dá)式2 #條件求反
判斷字符串
test –n 字符串 #字符串的長度非零 test –z 字符串 #字符串的長度是否為零 test 字符串1=字符串2 #字符串是否相等,若相等返回true test 字符串1!=字符串2 #字符串是否不等,若不等反悔false
判斷整數(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è)文件是否為同一個(gè)文件,可用于硬連接。主要判斷兩個(gè)文件是否指向同一個(gè)inode。 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 bit位 test –b File #文件存在并且是塊設(shè)備文件 test –L File #文件是否是一個(gè)符號鏈接(同-h) test –o File #文件的屬于有效用戶ID test –p File #文件是一個(gè)命名管道 test –r File #文件是否可讀 test –s File #文件是否是非空白文件 test –t FD #文件描述符是在一個(gè)終端打開的 test –u File #文件存在并且設(shè)置了它的set-user-id位 test –w File #文件是否存在并可寫 test –x File #文件屬否存在并可執(zhí)行
拓展
test xxx 可以簡寫成 [ xxx ] 的形式。
注意:在使用"["簡寫test時(shí),左中括號后面的空格和右括號前面的空格是必需的,如果沒有空格,Shell不可能辨別表達(dá)式何時(shí)開始何時(shí)結(jié)束.
也就是說
test option file
可以全部改寫成:
[ option file ]
例如:
test –w File
改寫成
[ –w File ]
【示例】
//判斷第一個(gè)參數(shù)是否為空字符串,不空則打印 if test -n "$1" then echo "$1" fi
測試,放到文件當(dāng)中
#!/bin/sh if test -n "$1" then echo "$1" fi 執(zhí)行 chmod +x test.sh ./test.sh www.linuxpig.com
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關(guān)文章
實(shí)例分析對于歷史Linux鏡像的問題進(jìn)行修復(fù)處理
在本篇內(nèi)容中我們給大家總結(jié)了關(guān)于對于歷史Linux鏡像的問題進(jìn)行修復(fù)處理知識點(diǎn),有需要的朋友們跟著學(xué)習(xí)下。2019-02-02Linux下Squid代理服務(wù)器的架設(shè)與維護(hù)經(jīng)驗(yàn)分享
現(xiàn)有Chinanet ip 126個(gè),不可能分給所有的用戶使用。通過架設(shè)代理服務(wù)器來實(shí)現(xiàn)讓所有用戶使用網(wǎng)絡(luò)資源是最簡單并且相對安全和可靠的方法。2011-06-06linux使用tcpdump命令監(jiān)視指定網(wǎng)絡(luò)數(shù)據(jù)包的方法
linux使用tcpdump命令監(jiān)視指定網(wǎng)絡(luò)數(shù)據(jù)包的方法,大家參考使用吧2013-12-12Linux下使用pip安裝SpeechRecognition連接超時(shí)解決辦法
這篇文章主要介紹了Linux下使用pip安裝SpeechRecognition連接超時(shí)解決辦法,如果遇到此問題,可以借鑒閱讀本文2023-03-03Centos8使用Squid配置代理服務(wù)器的詳細(xì)過程
這篇文章主要介紹了Centos8使用Squid配置簡單的代理服務(wù)器,安裝過程中需要?jiǎng)?chuàng)建新賬戶并將其設(shè)置為管理賬戶,設(shè)置網(wǎng)絡(luò)連接,簡單的配置過程跟隨小編一起看看吧2022-01-01