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