关于条件测试命令可以使用man test命令查看
条件测试语句语法
1.test 测试语句
2.[ 测试语句 ]
3.[[ 测试语句 ]]
4.((测试语句))
其中1和2除了语法不一样,功能基本是一样的,而第3种语法他可以使用通配符进行匹配,第四种语法除了用于整数的比较,更多的还是进行一些整数的运算,不过平时经常用到的还是第2、3种语法结构。
条件测试类型
- 文件测试
- 数值测试
- 字符串测试
- 逻辑测试
文件测试
格式:
1.test 文件测试符 file
2.[ 文件测试符 file ] #中括号的两边都需要有空格
3.[[ 文件测试符 file ]] #中括号两边需要有空格常用文件测试操作符:
1
2
3
4
5
6
7
8
9
10
11
12-b: 文件是否存在,并且为块文件
-c:文件是否存在,并且为字符文件
-d: 文件是否存在,并且为一个目录(在linux下,万物皆为文件)
-e: 文件是否存在
-f: 文件是否存在,并且为普通文件
-s: 文件是否存在,并且文件大小大于零
-L: 文件是否存在,并且为链接文件
-r: 文件是否存在,并且文件可读
-w: 文件是否存在,并且文件可写
-x: 文件是否存在,并且文件可执行
file1 -nt file2 文件1是否比文件2新(文件新旧是按照文件修改时间来区分的)
file1 -ot file2 文件1是否比文件2旧
实例:
1 | [root@docker ~]# touch wanger #新建一个普通文件 |
字符串测试:
格式:
- test 字符串测试符 string
- [ 字符串测试符 string ]
- [[ 字符串测试符 string ]]
常用字符串测试操作符:
1
2
3
4-z string :字符串长度是否为0
-n string :字符串长度是否不为0
string1 = string2 :string1和string2是否相等
string1 != string2 :string1和string2是否不相等
实例:
1 | [root@docker ~]# name=wanger #定义一个变量 |
数值测试:
格式:
test num1 数值测试操作符 num2
[ num1 数值测试操作符 num2 ]
[[ num 数值测试操作符 num2 ]]
((num1数值测试操作符num2))
常用数值测试操作符:
1 | num1 -eq num2 : 数字1是否等于数字2 |
注意:以上几种操作符不能用在(())格式中,在(())中应使用”< > = != >= <=”比较符号来进行数值的比较
实例:
1 | [root@docker ~]# test 6 -le 5 && echo 0 ||echo 1 |
逻辑运算符:
1 | -a : 相当于&&,表示逻辑与,两端条件都为真,结果为真 |
实例:
1 | test=”123” #定义test变量 |