泷羽sec-----shell编程学习(5)
字符串运算
前言
在 Shell 中,比较两个字符串是否相等,使用[ "$str1" = "$str2" ]
这种形式(注意变量两边要加上双引号,这是为了防止变量值包含空格等特殊字符时出现意外情况)
变量名后面紧接着用等号(注意等号两边不能有空格)连接要赋给变量的值
字符串判断
= 判断两个字符串是否相等,返回true或false
!= 判断两个字符串是否不等,返回true或false
-z 判断字符串长度是否为空
-n 判断字符串长度是否不为空
如:
str1="longyu666"
str2="Longyu666"
#第一种情况
if [ "$str1" = "$str2" ];then
echo "相等"
else
echo "不等"
fi
使用=判断相等
注意:在shell中对于大小写是敏感的
#第二种情况
if [ "$str1" != "$str2" ];then
echo "不等"
else
echo "相等"
fi
使用!=判断不相等,这里会自动变成符号≠
#第三种情况
if [ -z "$str1" ];then
echo "空"
else
echo "不为空"
fi
这里-z是检测$str1的长度是否为0,也就是空字符
#第四种情况
if [ -n "$str1" ];then
echo "不为空"
else
echo "空"
fi
这里-n是检测$str1的长度不为0,
#第五种情况
if [ "str1" ];then
echo "str1不为空"
else
echo "str1为空"
fi
在判断条件中直接以其变量,若变量为空字符串,则不会进入then
相等判断
不等判断
判断是否为空字符
判断是否为不空字符
以自身为条件
相当于字符是否有长度为条件,有则相当于if true
进入then
,否则进入else
与或运算
-a 与运算,相当于and
-o 或运算,相当于or
以简单的一个字符判断进行扩展
num1 =9
num2 =8
if [ "$num1" != "9" ];then
echo "num1不等于9"
else
echo "num1等于9"
fi
大于小于gt/lt
在shell中只能用于比较数字
以例子说明与或
num1 =9
num2 =8
#定义num1 = 9和num2 = 8时,这些变量实际上是字符串类型
if [ "$num1" != "9" -a "$num2" -lt "9" ];then
echo "两者都满足了"
else
echo "未满足"
fi
注意:-a连接两个条件,相当于and
#-lt是小于的意思,具体可以看上一篇文章
if [ "$num1" != "9" -o "$num2" -lt "9" ];then
echo "两个或一个满足了"
else
echo "两个都没有满足"
fi
注意:-o连接两个条件,相当于or
与运算
或运算
本文来自博客园,作者:whitehe,转载请注明原文链接:https://www.cnblogs.com/whitehe/p/18578404