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