探究shell中 =~ 与 == 的区别

本文介绍了在Shell脚本中,`=~`与`==`操作符的区别。`=~`用于正则表达式匹配,判断左侧参数是否符合右侧正则表达式,而`==`仅用于字符串比较。通过示例展示了两者在比较时的输出结果,强调了`=~`在进行变量的包含关系检查时的实用性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

shell中 =~ 与 == 的区别:

之前对shell的学习只停留在理论,很多点都是一扫而过,没有思考其他的可能性,这样会错过很多的知识。接下来分享的是=~的用法。


问题描述

在看脚本的时候发现了$version =~ $new_version,其中=~不熟悉,于是就去搜索了一下:

正则匹配,用来判断其左侧的参数是否符合右边的要求,如果匹配则为真,不匹配则为假。如果匹配就输出1,不匹配就输出0(描述存在歧义)
于是产生了=~与==的联想,开始了实践,获得了一些结果:

[[7.6 =~ 7.6.* ]]
echo $?
#输出0
[[7.6 == 7.6.* ]]
echo $?
#输出1
[[7.6 =~ 7.6 ]]
echo $?
#输出0
[[7.6 == 7.6 ]]
echo $?
#输出0

#输出0:error为0 
#输出1:error为1

echo $?为返回上一行命令输出)


结论:

=~支持正则表达式,同时支持变量比较相等。==只能支持比较变量相不相等。

可知:如果需要做两个变量的包含关系,可以使用=~匹配


评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值