linux文件编译测试,Linux条件测试

大家好,我是“孤云幕雨”;今天给大家带来的是《Linux条件测试》

条件测试定义: 判断某需求是否满足,需要由“条件测试”机制来实现

如何编写测试表达式以实现所需的测试

(1). 执行命令,并利用命令状态返回值来判断

0:成功

1-255:失败

(2). 测试表达式

test 测试表达式

[ 测试表达式 ]

[[ 测试表达式 ]]

注意:中括号和测试表达式前后必须有空格,否则为语法错误

bash测试类型

一、数值比较测试

INTEGER 1 –gt INTEGER 2:判断整数1是否大于整数2;大于为真,否则为假

INTEGER 1 –ge INTEGER 2:判断整数1是否大于等于整数2

INTEGER 1 –lt INTEGER 2:判断整数1是否小于整数2;小于为真,否则为假

INTEGER 1 –le INTEGER 2:判断整数1是否小于等于整数2

INTEGER 1 –eq INTEGER 2:判断整数1是否等于整数2;等于为真,不等为假

INTEGER 1 –ne INTEGER 2:判断整数1是否不等于整数2;不等为真,等于为假

二、字符串测试

-z"STRING":判断指定字符串是否为空;空则为真,不空则为假

-n "STRING":判断指定字符串是否不空;不空则为真,空则为假

STRING 1 == STRING 2:判断字符串1是否和字符串2相等;相等为真,否则为假

STRING 1 !== STRING 2:判断字符串1是否和字符串2不相等;不等为真,否则为假

STRING =~ PATTERN:左侧的字符串是否能被右侧的模式所匹配(包含匹配)能匹配到则为真

STRING 1 > STRING 2:字符串是否大于

STRING 1 < STRING 2:字符串是否小于

注意:用于字符串比较时的用到的操作数都应该使用引号,且要在双中括号[[ ]]中进行

三、文件测试

(一)文件存在性测试

单目测试

-e FILENAME:文件存在性测试,存在为真,否则为假

(二)文件类型测试

-f FILENAME:判断该文件是否存在并且为普通文件

-d FILENAME:判断该文件是否存在并且为目录文件

-L FILENAME 或 -h FILENAME:判断该文件是否存在并且为软链接文件

-b FILENAME:判断该文件是否存在并且为块设备文件

-c FILENAME:判断该文件是否存在并且为字符设备文件

-p FILENAME:判断该文件是否存在并且为命名管道文件

-S FILENAME:判断该文件是否存在并且为套接字文件

(三)文件内容测试

-s FILENAME:判断该文件是否存在,是否为非空文件

(四)文件打开测试

-t FD;fd表示文件描述符是否已经打开且与某终端相关

(五)文件时间戳测试

-N FILENAME:文件自从上一次被读取之后是否被修改过

(六)文件从属关系测试

-O FILENAME:当前有效用户是否为文件属主

-G FILENAME:当前有效用户是否为文件属组

(七)双目测试

FILE1 -nt FILE2:判断FILE1是否新于FILE2

FILE1 -ot FILE2:判断FILE1是否旧于FILE2

FILE1 -ef FILE2:判断FILE1和FILE2是否指向同一个文件系统的相同inode的硬链接

(八)文件权限测试

普通权限测试

-r FILENAME:判断该文件是否存在,并且对当前用户可读

-w FILENAME:判断该文件是否存在,并且对当前用户可写

-x FILENAME:判断该文件是否存在,并且对当前用户可执行

特殊权限测试

-u FILENAME:判断该文件是否存在,并且拥有SUID权限

-g FILENAME:判断该文件是否存在,并且拥有SGID权限

-k FILENAME:判断该文件是否存在,并且拥有StickyBit权限

(九)多重(组合)条件测试

逻辑运算

数字相同则为0,数字不同则为1

与运算

真 && 真=真

真 && 假=假

假 && 真=假

假 && 假=假

或运算

真 || 真=真

真 || 假=真

假 || 真=真

假 || 假=假

非运算

! 真=假

! 假=真

逻辑与:&&

COMMAND1 && COMMAND2

EXPRESSION1 -a EXPRESSION2

逻辑或:||

COMMAND1 || COMMAND2

EXPRESSION1 –o EXPRESSION2

逻辑非:!

! COMMAND

! EXPRESSION

一行中可以执行多条语句,语句间用分号“;”分割;不管前面的语句是否正确执行,后面的语句都会执行

语句1 ; 语句2

bash自定义退出状态码

语法:exit [N]

脚本中一旦遇到exit命令,脚本会立即终止;终止退出状态取决于exit命令后面的数字

注意:shell进程遇到exit时,即会终止,因此,整个脚本执行即为结束

状态码范围:1~255之间

如果未给脚本指定退出状态码,整个脚本的退出状态码取决于脚本中执行的最后一条命令的状态码

遇到exit,bash进程会立即终止

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值