shell系列-shell第十四讲
同学们,欢迎大家来到马哥教育官网,今天我们学习shell系列-shell第十四讲的内容!
1、文件测试
1.1、-e
-e判断符主要作用判断文件或者目录是否存在,如果存在条件为真,状态返回值为0,不存在条件为假,状态返回值为1,比如:
bash [root@master1 ~]#touch /tmp/haha.txt [root@master1 ~]#[ -e /tmp/haha.txt ] && echo "yes,存在" || echo "no,不存在" yes,存在 [root@master1 ~]#[ -e /tmp ] && echo "yes,存在" || echo "no,不存在" yes,存在 [root@master1 ~]#[ -e /tmppp ] && echo "yes,存在" || echo "no,不存在" no,不存在
-e不仅可以判断文件存在性,还可以判断目录/tmp存在性,所以-e判断符还是很有帮助的。
1.2、-f
-f判断符主要作用判断文件存在且为普通文件,条件为真,比如:
bash ~]#[ -f /tmp/haha.txt ] && echo "yes,文件存在且为普通文件" || echo "no,文件不存在或者不是普通文件" yes,文件存在且为普通文件 ~]#[ -f /tmp ] && echo "yes,文件存在且为普通文件" || echo "no,文件不存在或者不是普通文件" no,文件不存在或者不是普通文件
/tmp是一个目录,所以这里测试肯定是不存在的。
1.3、-d
-d判断符主要作用判断目录存在且为普通文件,条件为真,比如:
bash [root@master1 ~]#[ -d /tmp ] && echo "yes,目录存在且为目录" || echo "no,目录不存在或者不是目录" yes,目录存在且为目录 [root@master1 ~]#[ -d /tmpp ] && echo "yes,目录存在且为目录" || echo "no,目录不存在或者不是目录" no,目录不存在或者不是目录
-d判断符在shell脚本中多用来判断目录是否存在,还是很常用的。
1.4、-r
-r判断符用来判断文件或者目录是否存在且为可读,比如:
bash [root@master1 ~]#[ -r /tmp/haha.txt ] && echo "yes,文件或目录存在且为可读" || echo "no,目录或者文件不存在或者不可读" yes,文件或目录存在且为可读
1.5、-w
-w判断符用来判断文件或目录是否存在且为可写,比如:
bash [jodan@master1 ~]$ll /tmp/haha.txt ----------. 1 root root 0 Mar 29 15:08 /tmp/haha.txt [jodan@master1 ~]$[ -w /tmp/haha.txt ] && echo "yes,文件或目录存在且为可写" || echo "no,目录或者文件不存在或者不可写" no,目录或者文件不存在或者不可写
1.5、-x
-x判断文件或目录是否存在且有可执行权限,比如:
bash [jodan@master1 ~]$ll /tmp/haha.txt ----------. 1 root root 0 Mar 29 15:08 /tmp/haha.txt [jodan@master1 ~]$[ -x /tmp/haha.txt ] && echo "yes,文件或目录存在且有执行权限" || echo "no,目录或者文件不存在或者没有执行权限" no,目录或者文件不存在或者没有执行权限
1.6、-s
-s判断文件是否存在且大小大于0,比如:
bash [jodan@master1 ~]$[ -s /tmp/haha.txt ] && echo "yes,文件存在且大小不为0" || echo "no,文件不存在或者大小为0" no,文件不存在或者大小为0 [jodan@master1 ~]$echo "1111" > /tmp/haha.txt [jodan@master1 ~]$[ -s /tmp/haha.txt ] && echo "yes,文件存在且大小不为0" || echo "no,文件不存在或者大小为0" yes,文件存在且大小不为0
-s是用来判断文件大小的,只有文件大小不为0,才为真。我们刚开始创建的/tmp/haha.txt只是一个空文件而已。
声明:文章来源于网络,如有侵权请联系删除!