字符串比较主要有等于,不等于,大于,小于和是否为空等测试。字符串测试符如下所示:
字符串测试 | 说明 |
---|---|
-z “string” | 字符串string为空时返回真,否则为假 |
-n “string” | 字符串string非空时返回真,否则为假 |
“string1” = “string2” | 字符串string1和string2相同时返回真,否则为假 |
“string1” != “string2” | 字符串string1和string2不相同时返回真,否则为假 |
“string1” > “string2” | 按照字典排序,字符串string1排在string2之前返回真,否则为假 |
“string1” < “string2” | 按照字典排序,字符串string1排在string2之后返回真,否则为假 |
用例1:测试str是否为空
[root@node1 ~]# str=""
[root@node1 ~]# test -z "$str"
[root@node1 ~]# echo $?
0
[root@node1 ~]# test -n "$str"
[root@node1 ~]# echo $?
1
用例2:比较str1和str2是否相同
[root@node1 ~]# str1=""
[root@node1 ~]# str2="hello"
[root@node1 ~]# [ "$str1" = "$str2" ]
[root@node1 ~]# echo $?
1
[root@node1 ~]# [ "$str1" != "$str2" ]
[root@node1 ~]# echo $?
0
用例2:比较str1和str2的大小,注意>和<号需要转义
[root@node1 ~]# str1="abc"
[root@node1 ~]# str2="hello"
[root@node1 ~]# [ "$str1" < "$str2" ]
-bash: hello: No such file or directory
[root@node1 ~]# [ "$str1" \< "$str2" ]
[root@node1 ~]# echo $?
0
[root@node1 ~]# [ "$str1" \> "$str2" ]
[root@node1 ~]# echo $?
1