目标:判斷/root/test/logical這個名稱是否存在,若不存在,則建立一個檔案,使用touch 來建立,建立完成後離開;如果存在,先判斷是不是一個檔案,是檔案,則将其删除後建立一個名為logical的檔案;若是目錄,則将其删除.
#/bin/sh
if [ -f /root/test/logical ] ; then
echo " 這是一個檔案,删除後,用touch 建立一個新檔案!"
touch /root/test/logical
elif [ -d /root/test/logical ] ; then
echo " 這是一個目錄,将其删除!"
rm -Rf /root/test/logical
else
echo " 不存在,用touch 建立一個新檔案"
fi
test的判斷條件:
(1) 檔案的類型
-d 該"檔案名"是否為目錄
-f 該"檔案名"是否為檔案
-e 該"檔案名"是否為存在
-b 該"檔案名"是否為塊裝置
-c 該"檔案名"是否為字元裝置
-s,-p,-L 分别該"檔案名"是否為套接字檔案,管道檔案,連接配接檔案.
(2)檔案的權限
-r 該"檔案名"是否具有"可讀"屬性
-w 該"檔案名"是否具有"可寫"屬性
-x 該"檔案名"是否具有"可執行"屬性
-u 該"檔案名"是否具有"SUID"屬性
-g 該"檔案名"是否具有"SGID"屬性
-k 該"檔案名"是否具有"Sticky bit "屬性
-s 該"檔案名"是否具有"非空白檔案"屬性
(3) 兩個整數比較
-eq(equal) 兩數相等
-ne(not equal) 兩數不等
-gt(greater than) 大于
-lt(less than) 小于
-le(less than or equal) 小于等于
-ge(greater than or equal)大于等于
本文轉自xcjgutong 51CTO部落格,原文連結:http://blog.51cto.com/xuchengji/313720