天天看点

第三个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