条件测试
Last updated
Last updated
判断字符串是否相等, 可能还要检查文件状态或进行数字测试, 只有这些测试完成才能做下一步动作
test 命令: 用于测试字符串、 文件状态和数字
test 命令有两种格式:
使用方括号时, 要注意在条件两边加上空格
shell 脚本中的条件测试如下:文件测试、 字符串测试、 数字测试、 复合测试
文件测试: 测试文件状态的条件表达式
栗子 : test_file.sh
字符串测试
其中 str_operator 可以是:
栗子 : test_string.sh
测试数值格式如下:
num_operator 可以是 :
数值相等
数值不相等
数 1 大于数 2
数 1 大于等于数 2
数 1 小于等于数 2
数 1 小于数 2
栗子 : test_num.sh
命令执行控制:
&&
&&左边命令(command1) 执行成功( 即返回 0 ), shell 才执行 && 右边的命令(command2)
||
||左边的命令(command1) 执行失败 ( 即返回非 0 ), shell 才执行 || 右边的命令(command2)
栗子 :
多重条件判定
-a
( and )两状况同时成立! 同时具有 r 与 x 权限时, 才为 true.
-o
(or)两状况任何一个成立! 具有 r 或 x 权限时, 就传回 true.
!
相反状态 , 当 file 不具有 x 时, 回传 true
@Author: cpu_code
@Date: 2020-07-31 09:46:09
@LastEditTime: 2020-08-01 14:25:26
@FilePath: \notes\shell\condition.md
@Gitee: https://gitee.com/cpu_code
@Github: https://github.com/CPU-Code
@Gitbook: https://923992029.gitbook.io/cpucode/
-e 是否存在
-d 是目录
-f 是文件
-r 可读
-w 可写
-x 可执行
-L 符号连接
-c 是否字符设备
-b 是否块设备
-s 文件非空
= 两个字符串相等
!= 两个字符串不相等
-z 空串
-n 非空串