Linux shell 字符串比较
字符串表达式可以测试字符串是否相等、字符串长度是否为0或者字符串是否为空。bash shell是区分0长度字符串和空字符串的。字符串的比较操作符如表1所示。
表1 字符串操作符
操作符 | 说明 |
= | 比较两个字符串是否相等 |
!= | 比较两个字符串是否不相等 |
-n | 判断字符串的长度是否大于0 |
-z | shell 字符串长度判断字符串的长度是否等于0 |
下面创建一个实例,来说明字符串操作符的使用。在shell程序中,利用这些操作符比较两个名为str1和str2的字符串。代码如下所示:
#!/bin/sh
str1="opq"
str2="opr"
if [ $str1 = $str2 ]; then
echo "str1 equal to str2"
else
echo "str1 not equal to str2"
fi
if [ $str2 != $str1 ]; then
echo "str2 not equal to str1"
else
echo "str2 equal to str1"
fi
if [ $str1 ]; then
echo "str1 is not empty"
else
echo "str1 is empty"
fi
if [ -n $str2 ]; then
echo "str2 has a length greater than zero"
else
echo "str2 has lenth equal to zero"
fi
if [ -z $str1 ]; then
echo "str1 has a lenth equal to zero"
else
echo "str1 has a lenth greater than zero"
fi
程序第一行的“#!/bin/sh”用于指定使用bash shell解释该程序,该行也等价于“#!/bin/bash”。如果两个字符串长度不相等,系统会在短字符串尾部添加空格,然后再进行比较。另外,读者要注意shell程序书写时的格式,例如第4行中的“[ $str1 = $str2 ];”,在输入时就应当注意要有适当的空格,否则,程序就不能正常执行。该程序的执行结果如图8所示。
图8 执行结果
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论