shell脚本中判断变量的值中是否包含指定字符串

- 脚本

想要将某个命令执行后输出内容赋值给变量,然后根据输出中是否包含指定关键字来判断命令执行是否符合预期。


匹配方法

如下所示,直接用 =~ 匹配变量值和字符串即可,下面的if判断表示变量 $info 的值中包含 "NotFound" 字符即表示匹配成功。

if [[ ${info} =~ "NotFound" ]]; then

    echo  "匹配 成功"

fi




测试脚本

如下脚本用来验证变量值是否匹配,根据 $1 参数的值来为变量 $info 赋予不同的值来和 "NotFound" 字符串进行匹配。

[root@imzcy ~]# cat test.sh
#!/bin/bash

if [ $1 -eq 1 ];  then

    info='Error from server (NotFound): deployments.apps "deploymenta-web-newwechat" not found'

else

    info='No resources found in prod namespace.'

fi

if [[ ${info} =~ "NotFound" ]]; then

    echo  "匹配 成功"

else

    echo "匹配  失败"

fi
[root@imzcy ~]#

当参数为1时,正常匹配。当参数为2时,不匹配。

[root@imzcy ~]# sh test.sh 1
匹配 成功
[root@imzcy ~]#
[root@imzcy ~]# sh test.sh 2
匹配  失败
[root@imzcy ~]#