Shell的字符串表达式介绍-实践及企业案例脚本剖析

man test可以看到字符串

-nSTRING
thelengthofSTRINGisnonzero
STRINGequivalentto-nSTRING
-zSTRING
thelengthofSTRINGiszero
STRING1=STRING2
thestringsareequal
STRING1!=STRING2
thestringsarenotequal
INTEGER1-eqINTEGER2
INTEGER1isequaltoINTEGER2
INTEGER1-geINTEGER2
INTEGER1isgreaterthanorequaltoINTEGER

字符串测试操作符:

常用字符串测试操作符

-z“字符串”,若串长度为0则真,-z可以理解为zero

-n“字符串”,若串长度为0则真,-n可以理解为no zero

"串1" = “串2”,若串1等于串2则真,可使用“==”代替“=”

“串1”!=“串2”,若串1不等于串2则真,但不能用“!==”代替“!=”

特别注意:

1、以上表格中的字符串测试操作符号必须用""双引号引起来哦。

2、比较符号两端必须有空格

3、字符串或字符串变量比较都要加双引号后再比较

4、字符串或字符串变量比较,比较符号两端最好都有空格。

练习:

[root@linux-node1~]#[-n"abc"]&&echo1||echo0
1
[root@linux-node1~]#[-n""]&&echo1||echo0
0
[root@linux-node1~]#[-z"abc"]&&echo1||echo0
0
[root@linux-node1~]#[!-z"abc"]&&echo1||echo0
1
[root@linux-node1~]#[-n"$test"]&&echo1||echo0
1
[root@linux-node1~]#test="oldboy"
[root@linux-node1~]#[-n"test"]&&echo1||echo0
1
[root@linux-node1~]#[-n"$test"]&&echo1||echo0
1
[root@linux-node1~]#["$test"="oldboy"]&&echo1||echo0
1

相关文章

用的openwrt路由器,家里宽带申请了动态公网ip,为了方便把2...
#!/bin/bashcommand1&command2&wait从Shell脚本并行...
1.先查出MAMP下面集成的PHP版本cd/Applications/MAMP/bin/ph...
1、先输入locale-a,查看一下现在已安装的语言2、若不存在如...
BashPerlTclsyntaxdiff1.进制数表示Languagebinaryoctalhexa...
正常安装了k8s后,使用kubect工具后接的命令不能直接tab补全...