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è)符號(hào)鏈接(同-L) test –k File #文件是否設(shè)置了Sticky bit位 test –b File #文件存在并且是塊設(shè)備文件 test –L File #文件是否是一個(gè)符號(hào)鏈接(同-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í),左中括號(hào)后面的空格和右括號(hào)前面的空格是必需的,如果沒有空格,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)容對(duì)大家學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對(duì)本站的支持。
版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。