字符串测试操作符

字符串测试操作符的作用有:比较两个字符串是否相同、字符串的长度是否为零,字符串是否为NULL(注:bash区分零长度字符串和空字符串等)
下表为常用字符串操作符

也可以通过man test查看字符串测试操作符

字符串测试操作符提示:

(1)-n比较字符串长度是否不为零,如果不为零则为真,如:[ -n “$myvar” ]

(2)-z比较字符串长度是否等于零,如果等于零则为真,如:[ -z “$myvar” ]
特别注意:对于以上表格中的字符串测试操作符号。如:[ -n “$myvar” ]要把字符串用””双引号引起来。

注意事项:

(1)字符串或字符串变量比较都要加双引号之后再比较。

(2)字符串或字符串变量比较,比较符号两端最好都有空格,学习SHELL多参考系统脚本。

“=”比较两个字符串是否相同,与“==”等价,如[ “$a”=“$b” ]其中$a这样的变量最好用“”双引号引起来,因为如果中间有空格,*等符号就可能出错了,当然更好的办法就是[“${a}”=”${b}”]。

例子演示:

等号两端不加空格的错误案列:

系统脚本案例:

总结:

1、字符串或者字符串变量都要用“”双引号引起来。

2、比较符号等于号=和不等于号!=两端一定要有空格。

3、比较符号用等于号=和不等于号!=,不要用!==和==这种形式,书写要规范。

4、字符串变量要用大括号{}括起来,例如${a}。