shell脚本中字符串比较

shell中对变量的值添加单引号、双引号和不添加的区别:
【shell脚本中字符串比较】 1.对类型来说是无关的,即不是添加了引号就编程了字符串类型
2.单引号不对相关量进行替换,比如不对$符号解析成变量引用,从而用相应的变量的值替换,双引号则会进行替换。
字符串比较的方法:
相等比较:
$str1=$str2//检查str1与str2是否相同
$str1 !=$str2//检查str1与str2是否不同
大小比较:
$str1\<$str2//检查str1是否小于str2
$str1\>$str2//检查str1是否大于str2
判断字符串是否为空:
-n str1//检查str1的长度是否大于0
-z str1//检查str1的长度是否为0

注意::
上面的6个字符串比较。“所有的符号两侧都有空格”,必须小心使用不然将会出现语法错误。
同时字符串大小的比较,不能向上面的那么简单,因为shell不知道>是大于还是输出重定向,
<是小于还是输入重定向。 所以,<和>必须进行转义。
所以字符串大小的比较使用if [ $val1 \> $val2 ]//中括号两边必须加空格,符号两边必须加空格。

    推荐阅读