条件测试命令及其语法
条件测试语法 | 说明 |
---|
语法1: test <测试表达式> | test命令和<测试表达式>之间至少有一个空格 |
语法2:[ <测试表达式> ] | 该方法和test命令的用法一样,[]的边和内容之间至少有一个空格 |
语法3:[[ <测试表达式> ]] | 比test和[]更新的语法格式。[[]]的边界和内容之间至少有一个空格。[[]]中可以使用通配符等进行模式匹配 |
语法4:((<测试表达式>)) | 一般用于if语句里,双小括号两端不需要有空格,测试对象只能是整数 |
[root@haha day2]
[root@haha day2]
0
[root@haha day2]
[root@haha day2]
1
[root@haha day2]
[root@haha day2]
1
[root@haha day2]
[root@haha day2]
0
[root@haha day2]
[root@haha day2]
1
[root@haha day2]
[root@haha day2]
0
[root@haha day2]
[root@haha day2]
1
[root@haha day2]
[root@haha day2]
0
文件测试表达式
常用的文件测试操作符 | 说明 |
---|
-a/-e 文件 | 文件是否存在 |
-b 文件 | 文件是否存在,且为块文件,如果文件存在且是一个块文件,则结果为0 |
-c 文件 | 文件是否存在且为字符文件,如果文件存在且是一个字符文件,则结果为0 |
-L 文件 | 文件存在且为链接文件则为真 |
-d 文件 | 文件存在且为目录则为真,即测试表达式成立 |
-f 文件 | 文件存在且为普通文件则为真,即测试表达式成立 |
-s 文件 | 文件存在且文件大小不为0则为真 |
-u 文件 | 文件是否设置suid位,如果设置了suid,则结果为0 |
-r 文件 | 文件存在且可读为真 |
-w 文件 | 文件存在且可写为真 |
-x 文件 | 文件存在且可执行则为真 |
f1 -nt f2,nt为newerthan | 文件f1比文件f2新则为真,根据文件的修改时间来计算 |
f1 -ot f2,ot为olderthan | 文件f1比文件f2旧则为真,根据文件的修改时间来计算 |
[root@haha day2]
[root@haha day2]
true
[root@haha day2]
true
[root@haha day2]
true
[root@haha day2]
true
[root@haha day2]
[root@haha day2]
true
[root@haha day2]
true
字符串测试表达式
常用字符串测试操作符 | 说明 |
---|
-n “字符串” | 若字符串的长度不为0,则为真,即测试表达式成立,n可以理解为nozero |
-z “字符串” | 若字符串的长度为0,则为真,z可以理解为zero |
“串1”=“串2” | 若字符串1等于字符串2,则为真,可使用==代替= |
“串1”!=“串2” | 若字符串1不等于字符串2,则为真 |
[root@haha day2]
1233211234567
[root@haha day2]
[root@haha day2]
0
[root@haha day2]
[root@haha day2]
[root@haha day2]
1
[root@haha day2]
[root@haha day2]
1
[root@haha day2]
[root@haha day2]
0
整数测试表达式
在[]以及test中使用的比较符号 | 在(())和[[]]中使用的比较符号 | 说明 |
---|
-eq | ==或= | 相等,全拼为equal |
-ne | != | 不相等,全拼为not equal |
-gt | > | 大于,全拼为greater than |
-ge | >= | 大于等于,全拼为greaterequal |
-lt | < | 小于,全拼为less than |
-le | <= | 小于等于,全拼为less equal |
逻辑操作符
在[]中使用的逻辑操作符 | 在test、[[]]和(())中使用的逻辑操作符 | 说明 |
---|
-a | && | and,与,两端都为真,则结果为真 |
-o | ll | or,或,两端有一个为真,则结果为真 |
! | ! | not,非,两端相反,则结果为真 |
[root@haha day2]
[root@haha day2]
[root@haha day2]
1
[root@haha day2]
[root@haha day2]
0
[root@haha day2]
[root@haha day2]
0
[root@haha day2]
[root@haha day2]
1