2,字符串测试表达式
常用字符串测试操作符 | 说明 |
---|---|
-n “字符串” | 若字符串的长度不为0,则为1,n可以理解为no zero |
-z “字符串” | 若字符串的长度为0,则为1,z可理解为zero |
“串1”=“串2” | 若字符串1等于字符串2,则为1,可使用==代替= |
“串1”!=“串2” | 若字符串1不等于字符串2,则为1 |
示例:
1,检测变量是否非空
LEEVAR=lee
[ -z "$LEEVAR" ] && echo yes ||echo no
no
[ -n "$LEEVAR" ] && echo yes || echo no
yes
四,整数测试表达式
在[]以及test中使用的比较号 | 在(())和[[]]中使用的的比较符号 | 说明 |
---|---|---|
-eq | ==或= | 相等,全拼为equal |
-ne | != | 不相等,全拼为not equal |
-gt | > | 大于,全拼为greater than |
-ge | >= | 大于等于,全拼为greater equal |
-lt | < | 小于,全拼为less than |
-le | <= | 小于等于,全拼为less equal |
示例:
相等或不等
A=1;B=1
[ "$A" -eq "$B" ] && echo yes || echo no
yes
[ "$A" -ne "$B" ] && echo yes || echo no
no
大小对比
A=1;B=2
[ "$A" -gt "$B" ] && echo yes || echo no
no
[ "$A" -ge "$B" ] && echo yes || echo no
no
[ "$A" -lt "$B" ] && echo yes || echo no
yes
[ "$A" -le "$B" ] && echo yes || echo no
no