【发布时间】:2019-05-18 03:45:10
【问题描述】:
我正在尝试创建一个 git commit-msg 挂钩,其中包括一个简单的正则表达式来验证日志消息。它不能使用通常的 bash 语法。
我用一个非常简单的正则表达式试了一下,还是不行
知道我做错了什么吗?
这是一个包含明显匹配的简单示例,但它打印出“不匹配”
#!/bin/bash
message="[GLSD-0000]"
echo "Message: '$message'"
regex="\[GLSD-\w+\]"
if [[ $message =~ $regex ]]; then echo "yes";else echo "no match!"; fi
使用 git 版本 2.18.0.windows.1
【问题讨论】:
-
Bash 通常不支持像
\w这样的 Perl 风格的通用字符类型。改为阅读POSIX extended regular expressions(或咨询man re_format,如果您的本地计算机上可用)。