标签:长度 开头 括号 shell 工作 测试 null nbsp 因此
Shell脚本中,数值与字符串比较是不同的,因此要注意(注意[]括号内参数和括号之间有一个空格)。
-eq 等于,如: if [ $a -eq $b ]
-ne 不等于,如: if [ $a -ne $b ]
-gt 大于,如: if [ $a -gt $b ]
-ge 大于等于,如: if [ $a -ge $b ]
-lt 小于,如: if [ $a -lt $b ]
-le 小于等于,如: if [ $a -le $b ]
< 小于(需要双括号),如: (($a < $b))
<= 小于等于(需要双括号),如: (($a <= $b))
> 大于(需要双括号),如: (($a > $b))
>= 大于等于(需要双括号),如: (($a >= $b))
= 等于,如:if [ $a = $b ]
== 等于,如:if [ $a == $b ],与=等价
注意:==的功能在[[]]和[]中的行为是不同的,如下:
[[ $a == z* ]] # 如果$a以"z"开头(模式匹配)那么将为true
[[ $a == "z*" ]] # 如果$a等于z*(字符匹配),那么结果为true
[ $a == z* ] # File globbing 和word splitting将会发生
[ "$a" == "z*" ] # 如果$a等于z*(字符匹配),那么结果为true
一点解释,关于File globbing是一种关于文件的速记法,比如"*.c"就是,再如~也是. 但是file globbing并不是严格的正则表达式,虽然绝大多数情况下结构比较像.
!= 不等于,如:if [ $a != $b ]
这个操作符将在[[]]结构中使用模式匹配.
< 小于,在ASCII字母顺序下.如:
if [[ $a < $b ]]
if [ $a \< $b ]
注意:在[]结构中"<"需要被转义.
> 大于,在ASCII字母顺序下.如:
if [[ $a > $b ]]
if [ $a \> $b ]
注意:在[]结构中">"需要被转义.
具体参考Example 26-11来查看这个操作符应用的例子.
-z 字符串为"null".就是长度为0.
-n 字符串不为"null"
注意:
使用-n在[]结构中测试必须要用""把变量引起来.使用一个未被""的字符串来使用! -z 或者就是未用""引用的字符串本身,放到[]结构中。虽然一般情况下可 以工作,但这是不安全的.习惯于使用""来测试字符串是一种好习惯。
标签:长度 开头 括号 shell 工作 测试 null nbsp 因此
原文地址:https://www.cnblogs.com/jing99/p/9834804.html