天天看點

第三個shell (if …then )

目标:判斷/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