我希望匹配以下模式,然后在Jenkins中继续使用shell脚本。字符串应始终以CMR-和SP-开头,并应跟随4个数字,如下所示。我在匹配这种情况下遇到问题,对于0到9范围内的4个数字的数字。任何语言都可以。
所以我的目的就是这个。我想根据以下条件运行脚本。如果环境与生产中的xyz不匹配,并且与例如CMR-1234或SP-1234的票证ID不匹配,则脚本应退出并且不运行我的部署脚本。
有人可以帮帮我吗?
CMR-1256和SP-1278
我的bash表达式如下所示。
end () {
exit 1
}
echo $CMR
if [ ! `echo $CMR | grep -cE "^CMR-{0,9}|^SP-{0,9}" ` -gt 0 -a $environment == "xyz" ]
then
echo "None of the conditions met"
end
fi
我刚刚修改了我的问题,以便更清晰。
答案 0 :(得分:1)
试试这个,它使用bash
RE而不是grep
:
#!/bin/bash
end () { exit 1; }
environment="xyz"
for CMR in CMR-1256 gash SP-1278
do
echo $CMR
if [[ ! $CMR =~ ^(CMR|SP)-[0-9]{4}$ ]] || [[ $environment != "xyz" ]]
then
echo "None of the conditions met in $CMR $environment"
#end
else
echo "$CMR matched $environment"
fi
done
给出:
CMR-1256
CMR-1256 matched xyz
gash
None of the conditions met in gash xyz
SP-1278
SP-1278 matched xyz