四时宝库

程序员的知识宝库

每天三分钟搞定linux shell脚本10 字符串相关的if判断


字符串比较包括

  • 字符串是否相等 :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

注意:上面的双等号左右两侧,中括号内侧一定要有空格

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接