bash下字符串运算符及示例

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

ttp:///blog/cns!408d802a2ec73923!206.entry
bash下字符串运算符及示例
本文主要描述bash下字符串运算符,给出简单的示例,并提出几个值得注意的地方。

下面是bash支持的字符串运算符:

= 相等
!= 不等
-n 非空字符串
-z 空字符串
> 大于
< 小于

前面四个经常用,相信大家都很熟悉。不过下面还是分别给出示例,以及一些需要注意的地方。

1. 相等及不等比较
a="Robert"
b="Simon"

if [ $a = $b ]
then
echo "Equals"
fi

上面这样写行吗?行!大多数情况都行。但是如果b=""的时候还行吗?想想看。。。为什么??

所以,一般我们做字符串比较的时候,请一定要在变量两端加上双引号,象下面这样写才是好的习惯:
if [ "$a" = "$b" ]
then
echo "Equals"
fi

if [ "$a" != "Robert" ]
then
echo "Not equals"
fi

2. 非空及空字符比较

if [ -z $a ]
then
echo "Empty String"
fi
上面这样好吗?。。。这下你就不会上当了吧。。。哈哈,应该象下面这样写。
if [ -z "$a" ]
then
echo "Empty String"
fi

非空判断是一样的:
if [ -n "$a" ]
then
echo "Non-empty String"
fi

3. 字符串大小的比较
关于这个,我用了五年的shell,居然今天一个同事问到我这个怎么搞的时候不知道怎么搞-_-真是晕菜。差点就告诉他bash不能搞这个了,还好没有丢人后来翻书翻出来了。
网上实现这个的五花八门,有用sort做的,有用其它awk一类的做的,最NB的用C来做。其实关于这个,bash有内置的字符串比较操作符,大可不必麻烦各位去用这么多门路来实现。

if [[ "$a" > "$b" ]]
then
echo "$a is greater than $b"
fi

if [[ "$a" < "$b" ]]
then
echo "$a is smaller than $b"
fi

注意的就是要加两个方括号,还有就是字符串变量加上双引号(我第三次提醒大家),其它的没有了。:)

相关文档
最新文档