字符串比较包括
- 字符串是否相等 :str1 = str2
- 字符串是否不等:str1 != str2
- 字符串大小,也就是字典顺序,越靠后越大:str1 > str2或者str1 < str2
- 字符串长度是否为0 :-z str
- 字符串长度是否非0:-n str
注意:这里的符号要转义,否则变成了重定向了。
字符串比较相等:
#/bin/bash
name=wulinwaizhuan
name2=$name
if [ $name = $name2 ];then
echo "$name and $name2 is equal"
else
echo "$name and $name2 is not equal"
fi
运行结果:
wulinwaizhuan and wulinwaizhuan is equal
注意:上面的等号左右两侧,中括号内侧一定要有空格
比较字典序
#/bin/bash
var1="wulinwaizhuan"
var2="Wulinwaizhuan"
if [ $var1 \< $var2 ];then
echo "$var1 is less than $var2"
else
echo "$var2 is less than $var1"
fi
运行结果:
Wulinwaizhuan is less than wulinwaizhuan
以上的例子,说明小写字母排在字典的后面(类似于ascii的大小)。
sort 可以对字符串排序,sort 命令会把小写字母放在前面。
字符串是否为空
#/bin/bash
var1="wulinwaizhuan"
var2=""
if [ -n $var1 ];then
echo "$var1 is not empty"
fi
if [ -z $var2 ];then
echo 'var is empty'
fi
运行结果:
wulinwaizhuan is not empty
var is empty
注意上面的中括号内侧一定要有空格。
注意:有时候想在字符串比较的时候使用正则表达式,可以使用双方括号,如:
#/bin/bash
name=wulin345
if [[ $name == wulin[1-5]* ]];then
echo "OK"
fi
运行如下:
OK
注意:上面的双等号左右两侧,中括号内侧一定要有空格