cos_shell编程-条件判断
按照文件类型进行判断
黄色为常用选项
测试选项 | 作用 |
---|---|
-b 文件 |
判断该文件是否存在,并且是否为块设备文件(是块设备为真)—输入命令 echo $? : 真显示0,假显示1 |
-c 文件 |
判断该文件是否存在,并且是否为字符设备文件(是字符设备为真) |
-d 文件 | 判断该文件是否存在,并且是否为目录文件(是目录为真) |
-e 文件 | 判断该文件是否存在(存在为真) |
-f 文件 | 判断该文件是否存在,并且是否为普通文件(是普通文件为真) |
-L 文件 | 判断该文件是否存在,并且是否为符号链接文件(是则为真) |
-p 文件 |
判断该文件是否存在,并且是否为管道文件(是则为真) |
-s 文件 |
判断该文件是否存在,并且是否为非空(是则为真) |
-S 文件 |
判断该文件是否存在,并且是否为套接字文件(是则为真) |
两种判断格式
1 | [ root@localhost ~ ] $ test -e /root/install.log |
按照文件权限进行判断
黄色为常用选项
测试选项 | 作用 |
---|---|
-r 文件 | 判断该文件是否存在,并且是否该文件具有读权限 (有则为真) |
-w 文件 | 判断该文件是否存在,并且是否该文件具有写权限 (有则为真) |
-x 文件 | 判断该文件是否存在,并且是否该文件具有执行权限 (有则为真) |
-u 文件 | 判断该文件是否存在,并且是否该文件具有SUID权限 (有则为真) |
-g 文件 | 判断该文件是否存在,并且是否该文件具有SGID权限 (有则为真) |
-k 文件 | 判断该文件是否存在,并且是否该文件具有SBit权限 (有则为真) |
按照文件权限进行判断
测试选项 | 作用 |
---|---|
文件1 -nt 文件2 (new than) |
判断文件1的修改时间是否比文件2的新 (如果新则为真) |
文件1 -ot 文件2 (old than) |
判断文件1的修改时间是否比文件2的旧 (如果旧则为真) |
文件1 -ef 文件2 |
判断文件1是否和文件2的inode(节点)号一致,可理解为两个文件是否为同一文件。可以判断硬链接 |
两个整数之间的比较
测试选项 | 作用 |
---|---|
整数1 -eq 整数2 | 判断整数1是否与整数2相等 (相等则为真) –equivalence:相等的 |
整数1 -ne 整数2 | 判断整数1是否与整数2不相等 (不相等位置) –no equivalence:不相等的 |
整数1 -gt 整数2 | 判断整数1是否大于整数2 (大于则为真) –greater than:大于 |
整数1 -lt 整数2 | 判断整数1是否小于整数2 (小于位置) –less than:相等的 |
整数1 -ge 整数2 | 判断整数1是否大于等于整数2 (大于等于则为真 ) –greater than or equal:大于等于 |
整数1 -le 整数2 | 判断整数1是否小于等于整数2 (小于等于则为真 ) –less than or equal:大于等于 |
字符串的判断
测试选项 | 作用 |
---|---|
-z 字符串 |
判断字符串是否为空(为空则返回真) |
-n 字符串 |
判断字符串是否为非空(为非空则返回真) |
字符串1 == 字符串2 |
判断字符串1是否和字符串2相等(相等则返回真) |
字符串1 != 字符串2 |
判断字符串1是否和字符串2不相等(不相等则返回真) |
示例:
1 | [ root@localhost ~ ] $ name=sc |
多重条件判断
测试选项 | 作用 |
---|---|
判断1 -a 判断2 |
代表逻辑与;判断1和判断2都成立,最终的结果为真 |
判断1 -o 判断2 |
代表逻辑或;判断1和判断2有一个成立,最终的结果为真 |
!判断 |
代表逻辑非;是原始的判断式取反 |
示例:
1 | [ root@localhost ~ ] $ aa=11 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 some森!