1、条件判断
-b:判断文集爱你是否存在,并且是否为块设备文件,是块设备文件为真
-c:判断文件是否存在,并且是否为字符设备文件,是字符设备文件为真
-d:判断该文件是否存在,并且是否为目录,目录为真
-e:判断文件是否存在,存在为真
-f:判断文件是否存在,并且是否为文件,文件为真
-L:判断文件是否存在,并且为符号链接文件,符号链接文件为真
-p:判断文件是否存在,并且是否为管道文件,管道文件为真
-s:判断该文件是否存在,并且是否为空,不为空真
-S:判断文件是否存在,并且是否为套接字文件,套接字文件为真
1.1 方法一:
test -e test.txt
echo $? //0正确
1.2 方法二:
[ -e test.txt ]
echo $? //0正确
1.3 方法三 :
[ -d /root ] && echo 'yes' || echo 'no' //是否是目录
[ -f /root/test.txt ] && echo 'yes' || echo 'no'//是否是文件
[ -w /root/test.txt ] && echo 'yes' || echo 'no' //是否有写权限,所有者所属组其他人只有有一个有写权限,就会yes
[ -r /root/test.txt ] && echo 'yes' || echo 'no' //是否有读权限,所有者所属组其他人只有有一个有读权限,就会yes
[ -x /root/test.txt ] && echo 'yes' || echo 'no' //是否有执行权限,所有者所属组其他人只有有一个有执行权限,就会yes
4、字符串比较
4.1 -z 字符串:字符串为空,为真
4.2 -n 字符串:字符串不为空,为真
4.3 字符串1 == 字符串2 :两个字符串相等,为真
4.4 字符串1 != 字符串2:两个字符串不相等,为真
例子:[ -z "$name" ] && echo 'yes' || echo 'no' //$name中如果有值就yes否则就no
5、多重条件判断
5.1 条件一 -a 条件二:两个都为真,为真
5.2 条件一 -o 条件二:有一个为真,为真
5.3 !:非