【shell】 =~的使用

如下:

read -p "need compile OEM installatoin package?yes/[no]" IS_OEM
if [[ -z $IS_OEM ]]
then
	IS_OEM="No"
fi

if [[ "Yes" =~ $IS_OEM || "yes" =~ $IS_OEM ]]
then
        echo $?
        echo "Need compile OEM installatoin package!"
else
		echo "Dont need compile OEM installatoin package!"
fi

need compile OEM installatoin package?yes/[no]y
need compile OEM installatoin package?yes/[no]Y
need compile OEM installatoin package?yes/[no]yes
need compile OEM installatoin package?yes/[no]Yes
都返回0,其它否返回1

“=~”
正则匹配,用来判断其左侧的参数是否符合右边的要求,如果匹配则为真(返回0),不匹配则为假(返回1)。

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
shell 脚本中,`=`、`==` 和 `=~` 都是用于字符串比较的符号,它们的区别如下: 1. `=` 用于测试两个字符串是否相等。它可以用于 `[]` 和 `[[ ]]` 中。 举个例子,如果我们要测试一个字符串是否等于另一个字符串,可以使用 `=`: ``` if [ "$string1" = "$string2" ]; then echo "The two strings are equal." fi ``` 这个例子中,`[ "$string1" = "$string2" ]` 表示测试 `$string1` 是否等于 `$string2`。如果条件为真,则执行 `echo` 命令输出一条消息。 需要注意的是,`=` 左右两侧的字符串需要用双引号括起来,以避免被 shell 解释成其他含义。 2. `==` 也用于测试两个字符串是否相等,它可以用于 `[]` 和 `[[ ]]` 中。`==` 与 `=` 的作用相同,只是语法略有不同。在 `[]` 中,`==` 可以用单引号括起来,但是在 `[[ ]]` 中不能用单引号括起来。 举个例子,如果我们要测试一个字符串是否等于另一个字符串,可以使用 `==`: ``` if [ "$string1" == "$string2" ]; then echo "The two strings are equal." fi ``` 这个例子中,`[ "$string1" == "$string2" ]` 表示测试 `$string1` 是否等于 `$string2`。如果条件为真,则执行 `echo` 命令输出一条消息。 需要注意的是,`==` 左右两侧的字符串需要用双引号括起来,以避免被 shell 解释成其他含义。 3. `=~` 用于测试一个字符串是否匹配某个正则表达式。它只能用于 `[[ ]]` 中。 举个例子,如果我们要测试一个字符串是否匹配某个正则表达式,可以使用 `=~`: ``` if [[ "$string" =~ ^prefix.*$ ]]; then echo "The string matches the pattern." fi ``` 这个例子中,`[[ "$string" =~ ^prefix.*$ ]]` 表示测试 `$string` 是否匹配正则表达式 `^prefix.*$`。如果条件为真,则执行 `echo` 命令输出一条消息。 需要注意的是,`=~` 左侧的字符串需要用双引号括起来,而且正则表达式不需要用引号括起来。但是,如果正则表达式中包含空格、通配符或变量,建议使用引号括起来。 综上所述,`=`、`==` 和 `=~` 都是用于字符串比较的符号,但是 `=` 和 `==` 用于测试相等,而 `=~` 用于测试正则表达式匹配。另外,`=` 和 `==` 可以用于 `[]` 和 `[[ ]]` 中,而 `=~` 只能用于 `[[ ]]` 中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值