man test可以看到字符串
1
2
3
4
5
6
7
8
9
10
11
12
13
|
-n STRING
the length of STRING is nonzero
STRING equivalent to -n STRING
-z STRING
the length of STRING is zero
STRING1 = STRING2
the strings are equal
STRING1 != STRING2
the strings are not equal
INTEGER1 - eq INTEGER2
INTEGER1 is equal to INTEGER2
INTEGER1 - ge INTEGER2
INTEGER1 is greater than or equal to INTEGER
|
字符串测试操作符:
常用字符串测试操作符
-z “字符串”,若串长度为0则真,-z可以理解为zero
-n “字符串”,若串长度为0则真,-n可以理解为no zero
"串1" = “串2”,若串1等于串2则真,可使用“==”代替“=”
“串1”!=“串2”,若串1不等于串2则真,但不能用“!==”代替“!=”
特别注意:
1、以上表格中的字符串测试操作符号必须用""双引号引起来哦。
2、比较符号两端必须有空格
3、字符串或字符串变量比较都要加双引号后再比较
4、字符串或字符串变量比较,比较符号两端最好都有空格。
练习:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
[root@linux-node1 ~] # [ -n "abc" ]&&echo 1||echo 0
1 [root@linux-node1 ~] # [ -n "" ]&&echo 1||echo 0
0 [root@linux-node1 ~] # [ -z "abc" ]&&echo 1||echo 0
0 [root@linux-node1 ~] # [ ! -z "abc" ]&&echo 1||echo 0
1 [root@linux-node1 ~] # [ -n "$test" ]&&echo 1||echo 0
1 [root@linux-node1 ~] # test="oldboy"
[root@linux-node1 ~] # [ -n "test" ]&&echo 1||echo 0
1 [root@linux-node1 ~] # [ -n "$test" ]&&echo 1||echo 0
1 [root@linux-node1 ~] # [ "$test" = "oldboy" ]&&echo 1||echo 0
1 |
本文转自sandshell博客51CTO博客,原文链接http://blog.51cto.com/sandshell/1964139如需转载请自行联系原作者
sandshell