安卓系统

如何检查字符串是否包含bash中的子字符串

2020小白教你一招解决freenom免费域名 不可用 的问题 免费顶级域名申请教程,tk域名,关注、留言就有机会抽取免费GV号,搭建v2ray ws+tls、trojan必须域名绑定

2020小白教你一招解决freenom免费域名 不可用 的问题 免费顶级域名申请教程,tk域名,关注、留言就有机会抽取免费GV号,搭建v2ray ws+tls、trojan必须域名绑定

目录:

Anonim

在Bash中使用字符串时,最常见的操作之一是确定一个字符串是否包含另一个字符串。

,我们将向您展示几种检查字符串是否包含子字符串的方法。

使用通配符

最简单的方法是用星号通配符(星号) * 包围子字符串,并将其与字符串进行比较。 通配符是用于表示零个,一个或多个字符的符号。

如果测试返回 true ,则子字符串包含在字符串中。

在下面的示例中,我们使用if语句和相等运算符( == )检查是否在字符串 STR 找到了子字符串 SUB

#!/bin/bash STR='GNU/Linux is an operating system' SUB='Linux' if]; then echo "It's there." fi

执行后,脚本将输出:

It's there.

使用案例运算符

除了使用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

该脚本将回显以下内容:

It's there.

使用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 进行测试。

bash终端