正则表达式验证变量值中的字符串

正则表达式验证变量值中的字符串
var1="temp-pprod-deployment"

需要一个适用于以下用例的 shell 脚本;

如果上面的变量 $var1 值包含“prod”字符串,则执行一条打印消息,例如: echo "找到" else echo "未找到"

答案1

你可以这样做:

var1="temp-pprod-deployment"
if `echo "$var1" | grep -q "prod"` ;then
   echo "\$var1 contains word 'prod'"
else 
   echo "Not found."
fi

说明:您正在获取变量的输出并将其通过管道传输到 grep 以获取正则表达式。该-q选项表示成功时返回 0(true),失败时返回 1(false),用 来test表示if

答案2

使用 bashes / 运算符从变量内容中删除测试字符串,并查看该操作是否更改了它。如果有,您就知道该字符串存在:

$ var1="temp-pprod-deployment"
$ var2="temp-pdev-deployment"
$ [ "${var1/prod}" == "$var1" ] && echo not found
$ [ "${var2/prod}" == "$var2" ] && echo not found
not found
$ [ "${var1/dev}" == "$var1" ] && echo not found
not found
$ [ "${var2/dev}" == "$var2" ] && echo not found

完全符合OP:

if [ "${var1/prod}" != "${var1}" ]
then
  echo "Found."
else
  echo "Not found."
fi

相关内容