泷羽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

相等判断

image

不等判断

image

判断是否为空字符

image

判断是否为不空字符

image

以自身为条件

相当于字符是否有长度为条件,有则相当于if true进入then,否则进入else

image

image

与或运算

-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

与运算

image

或运算

image

posted @   whitehe  阅读(2)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
点击右上角即可分享
微信分享提示