目录
if条件语句可以判断范围类型,case条件语句只能判断准确的字符串
一、条件判断
1.按照文件类型进行判断
类型 | 作用 |
---|---|
-b文件 | 判断该文件是否存在,并且是否为块设备文件(是块设备文件为真)块设备是I/O设备中的一类,是将信息存储在固定大小的块中,每个块都有自己的地址,还可以在设备的任意位置读取一定长度的数据。例如U盘,SD卡。 |
-c 文件 | 判断该文件是否存在,并且是否为字符设备文件(是字符设备文件为真) 字符设备是指在I/O传输过程中以字符为单位进行传输的设备例如键盘,打印机。 |
-d 文件 | 判断该文件是否存在,并且是否为目录文件(是目录为真) |
-e 文件 | 判断该文件是否存在(存在为真) |
-f 文件 | 判断该文件是否存在,并且是否为普通文件(是普通文件为真) |
-L 文件 | 判断该文件是否存在,并且是否为符号连接文件(是符号连接文件为真) |
-p 文件 | 判断该文件是否存在,并且是否为管道文件(是管道文件为真) |
-s 文件 | 判断该文件是否存在,并且是否为非空(非空为真) |
-S 文件 | 判断该文件是否存在,并且是否为套接字文件(是套接字文件为真) |
使用[]括号来进行判断,利用$?来检测判断结果。
[root@localhost ~]# [ -e /etc/passwd ]
[root@localhost ~]# echo $?
0
[root@localhost ~]# [ -e /etc/test ]
[root@localhost ~]# echo $?
1
此命令还可以结合之前所学的&&和||再来进行判断:
[root@localhost ~]# [ -d /etc/passwd ] && echo "yes" || echo "no"
no
[root@localhost ~]# [ -d /etc/ ] && echo "yes" || echo "no"
yes
#第一个判断命令如果正确执行打印yes,否则打印no。
2.按照文件权限进行判断
选项 | 作用 |
---|---|
-r 文件 | 判断该文件是否存在,并且是否该文件拥有读权限(有读权限为真) |
-w 文件 | 判断该文件是否存在,并且是否该文件拥有写权限(有写权限为真) |
-x 文件 | 判断该文件是否存在,并且是否该文件拥有执行权限(有执行权限为真) |
-u 文件 | 判断该文件是否存在,并且是否该文件拥有SUID权限(有SUID权限为真) |
-g 文件 | 判断该文件是否存在,并且是否该文件拥有SGID权限(有SGID权限为真) |
-k 文件 | 判断该文件是否存在,并且是否该文件拥有SBit权限(有SBit权限为真) |