我有以下bash脚本。
我试图解决的问题非常简单。当Git no中的提交以gh-1234 ...
开头时,它应该失败。
这个bash脚本有什么问题?
commit_regex='(gh-[0-9]+|merge)'
error_msg="Aborting commit. Your commit message is missing either a Github Issue ('gh-1111') or 'Merge'."
if ! grep -q "$commit_regex" <<< "$1"; then
echo "$error_msg" >&2
exit 1
fi
答案 0 :(得分:1)
如评论中所述,您需要执行grep -E "$commit_regex"
来自man grep
页面 -
-E, - 扩展 - 将PATTERN解释为扩展正则表达式(ERE,见下文)。 (-E由POSIX指定。)
这应该可以解决您的问题,因为它会强制grep扩展变量。
答案 1 :(得分:0)
另一种在没有grep的情况下实现相同的方法:
if [[ $git_message=~ $commit_regex ]]
then
echo "$error_msg"
exit 1;
fi
另外:如果要求提交“gh-1234”作为邮件的开头,则应在正则表达式中添加^
。