參數
說明
-e 檔案名
如果檔案存在則為真
-r 檔案名
如果檔案存在且可讀則為真
-w 檔案名
如果檔案存在且可寫則為真
-x 檔案名
如果檔案存在且可執行則為真
-s 檔案名
如果檔案存在且至少有一個字元則為真
-d 檔案名
如果檔案存在且為目錄則為真
-f 檔案名
如果檔案存在且為普通檔案則為真
-c 檔案名
如果檔案存在且為字元型特殊檔案則為真
-b 檔案名
如果檔案存在且為塊特殊檔案則為真
執行個體示範:
輸出結果:
另外,Shell還提供了與( -a )、或( -o )、非( ! )三個邏輯操作符用于将測試條件連接配接起來,其優先級為:"!"最高,"-a"次之,"-o"最低。例如:
有一個檔案存在!
舉幾個例子:
a. 如果檔案存在且為普通檔案則為真
eg:
#判斷/cisco是否存在且是否為檔案,是的話就輸出/cisco is a file
#不是的話,就輸出/cisco是一個目錄
vim 4.sh
if [ -f /cisco ]
then
echo /cisco is a file
else
echo /cisco is director
fi
實驗下:
[root@wenwen ~]# touch /cisco
[root@wenwen ~]# ls
123 1.txt 3.sh 567.sql sedWSS6gg 桌面
1.sh 2.sh 4.sh prac3.py 求1,100之間的質數.sh
[root@wenwen ~]# ./4.sh
/cisco is a file
b. 如果檔案存在且為目錄則為真:
#判斷/cisco/31是否存在且為目錄,存在且為目錄的話,就輸出"ok",不存在或者/cisco/31不是目錄的話,輸出1,另外建立該目錄 /cisco/31/
vim 3.sh
if [ -d /cisco/31/ ]
echo ok
echo 1
rm -rf /cisco/31
mkdir -p /cisco/31
實驗過程,在/cisco下建立檔案名為31的檔案:
[root@wenwen ~]# cd /cisco
[root@wenwen cisco]# ls
[root@wenwen cisco]# touch 31
[root@wenwen cisco]# cd
[root@wenwen ~]# ./3.sh
1
本文轉自飛奔的小GUI部落格51CTO部落格,原文連結http://blog.51cto.com/9237101/1918344如需轉載請自行聯系原作者
ziwenzhou