2020小白教你一招解决freenom免费域名 不可用 的问题 免费顶级域名申请教程,tk域名,关注、留言就有机会抽取免费GV号,搭建v2ray ws+tls、trojan必须域名绑定
目录:
在Bash中使用字符串时,最常见的操作之一是确定一个字符串是否包含另一个字符串。
,我们将向您展示几种检查字符串是否包含子字符串的方法。
使用通配符
最简单的方法是用星号通配符(星号)
*
包围子字符串,并将其与字符串进行比较。 通配符是用于表示零个,一个或多个字符的符号。
如果测试返回
true
,则子字符串包含在字符串中。
在下面的示例中,我们使用if语句和相等运算符(
==
)检查是否在字符串
STR
找到了子字符串
SUB
:
#!/bin/bash STR='GNU/Linux is an operating system' SUB='Linux' if]; then echo "It's there." fi
执行后,脚本将输出:
使用案例运算符
除了使用if语句,您还可以使用case语句检查一个字符串是否包含另一个字符串。
#!/bin/bash STR='GNU/Linux is an operating system' SUB='Linux' case $STR in *"$SUB"*) echo -n "It's there.";; esac
使用正则运算符
确定指定的子字符串是否出现在字符串中的另一种方法是使用regex运算符
=~
。 使用此运算符时,正确的字符串被视为正则表达式。
带有星号
.*
的句点匹配零个或多个出现的字符,除了换行符以外的任何字符。
#!/bin/bash STR='GNU/Linux is an operating system' SUB='Linux' if]; then echo "It's there." fi
该脚本将回显以下内容:
使用Grep
grep命令还可用于在另一个字符串中查找字符串。
在下面的示例中,我们将字符串
$STR
作为输入传递给grep,并检查是否在输入字符串中找到了字符串
$SUB
。 该命令将根据情况返回
true
或
false
。
#!/bin/bash STR='GNU/Linux is an operating system' SUB='Linux' if grep -q "$SUB" <<< "$STR"; then echo "It's there" fi
-q
选项告诉grep保持安静,以忽略输出。
结论
检查字符串是否包含子字符串是Bash脚本中最基本且最常用的操作之一。
阅读本教程后,您应该对如何测试一个字符串是否包含另一个字符串有很好的了解。 您还可以使用其他命令(例如
awk
或
sed
进行测试。







