条件测试

Nnpxmj.png

条件测试语句

判断字符串是否相等, 可能还要检查文件状态或进行数字测试, 只有这些测试完成才能做下一步动作

test 命令: 用于测试字符串文件状态数字

test 命令有两种格式:

使用方括号时, 要注意在条件两边加上空格

shell 脚本中的条件测试如下:文件测试字符串测试数字测试复合测试

文件

文件测试: 测试文件状态的条件表达式

-e 是否存在

-d 是目录

-f 是文件

-r 可读

-w 可写

-x 可执行

-L 符号连接

-c 是否字符设备

-b 是否块设备

-s 文件非空

栗子 : test_file.sh

image-20200801140435708

字符串

字符串测试

其中 str_operator 可以是:

= 两个字符串相等

!= 两个字符串不相等

-z 空串

-n 非空串

栗子 : test_string.sh

image-20200801140332504

数字

测试数值格式如下:

num_operator 可以是 :

数值相等

数值不相等

数 1 大于数 2

数 1 大于等于数 2

数 1 小于等于数 2

数 1 小于数 2

image-20200731125644070

栗子 : test_num.sh

image-20200801140308980

复合测试

命令执行控制:

&&

&&左边命令(command1) 执行成功( 即返回 0 ), shell 才执行 && 右边的命令(command2)

||

||左边的命令(command1) 执行失败 ( 即返回非 0 ), shell 才执行 || 右边的命令(command2)

栗子 :

多重条件判定

-a

( and )两状况同时成立! 同时具有 r 与 x 权限时, 才为 true.

-o

(or)两状况任何一个成立! 具有 r 或 x 权限时, 就传回 true.

!

相反状态 , 当 file 不具有 x 时, 回传 true

Last updated

Was this helpful?