在 bash 脚本中如何检查一个字符串是否包含另一个字符串
我们在写 bash 脚本的时候,假如有一个字符串,我们想检查其中是否包含另一个子字符串,那这个时候需要怎样做呢?
在 bash 脚本中,有不止一种检查子字符串的方法,我们今天介绍一些简单的例子,然后在分享一个常用的 bash 脚本。
使用if-else语句检查bash中的子字符串
如果您熟悉bash中的条件语句,可以使用它以以下方式检查字符串是否包含子字符串:
1 | if [[ $fullstring == *"$substr"* ]]; |
一个简单的例子
上面的脚本中使用了双括号,这是有必要的,它是一种原生的方式,因为它没有使用任何其他工具。下面我们举个例子来对上面的脚本做一下解释。
使用长字符串初始化变量:
1 | $ fullstring="This is a string with a stretch" |
然后,将字符串“stretch”存储在变量 substr 中:
1 | $ substr="stretch" |
再然后进行字符串比较:
1 | $ if [[ $fullstring == *"$substr"* ]]; then |
这里的星号 * 表示零个或多个字符。大家应该熟悉 bash 脚本中引号的概念,引号内的 $substr 将其替换为真实的值。
基本上,上述脚本是检查完整的字符串是否与 xxxxxxsubstrxxxxxx 类型的字符串匹配。
另外,也可以直接使用子字符串,而不是通过变量: