shell(5)字符串运算符和逻辑运算符

声明
学习视频来自B站UP主 泷羽sec,如涉及侵泷羽sec权马上删除文章
笔记的只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负。


1.字符串运算符

首先举个例子,注意格式,在 if [ "$str1" = "$str2" ] 中,操作符需要前后有空格,在 if 和 [ ] 之间、[ 和 ] 之间都应该加上空格,通常 then 会放在同一行或者另起一行。


接着我们把str1的hello改为首字母大写的Hello观察是否对大小写敏感。

可以看出他分大小写。

将等于改为不等于(!=会自动变成≠)继续查看结果

说明bash脚本中对大小写敏感。

使用-z 检查字符串的长度是否为零

长度不为0,返回false

-z相反,-n 检查字符串的长度是否不为零

长度不为0,返回true

判断一个空参数str11,若为空则false,否则true

是空参数,返回false

2.逻辑运算符之布尔运算符

第一个例子

余运算,第一个例子只有一个条件需要满足,下面举的例子有两个条件,若全部满足则返回true,都不满足或者只有一个满足则false

利用-a (两个条件要满足才为 true) 把两个条件连接在一起,num1不等于9不满足,num2小于20满足,所以false

-o 两个条件只要满足一个就是 true 。

对于数字,"$num1" 和 "$num2" 可以不加双引号,但在实际编写脚本时,加双引号会更安全,特别是在处理变量时,避免出现潜在的错误。对于纯数字的比较,不加双引号也是可以的,但是加上双引号可以确保脚本的鲁棒性。

num1=9
num2=19
if [ "$num1" != "9" -a "$num2" -lt "20" ]; then
    echo num1不等于9
else
    echo num1等于9
fi
posted @ 2024-12-05 00:41  空前123  阅读(24)  评论(0)    收藏  举报