Linux Shell脚本中字符串比较表达式问题

转自:http://blog.163.com/wang_ly2442/blog/static/94943407201292592314725/

Shell脚本中字符串比较操作符常用的有:

 =:比较两个字符串是否相同,相同则结果为0,否则为1;

!=:比较两个字符串是否相同,不同则结果为0;否则为1。

此操作符可用在test表达式中,也可用在条件判断语句中:

1. test表达式中

[root@qq ~]# str1=abcd

[root@qq ~]# test $str1 = abcd     

[root@qq ~]# echo $?

0

[root@qq ~]# test $str1 = eabcd
[root@qq ~]# echo $?
1

2. if条件判断语句中

脚本程序如下:

str1=abc
if [ "$str1" != "abc" ]
then
echo "branch1"
else
echo "branch2"
fi
执行后输出branch2

注意:

1)str1 变量在赋值时,=左右不能加空格。但在test和if表达式中,$str1 和 = 之间以及 = 和 abcd  之间一定要加空格,否则查看结果全为0。“!=”操作符也一样。

2)= 可以写成 ==,两端也必须加空格,字符串(或变量的值)中如果没有空格可以把双引号去掉。

你可能感兴趣的:(Linux Shell脚本中字符串比较表达式问题)