逃生
\d
是Perl扩展,通常在
grep
没有其他选项。使用
[0-9]
或者POSIX类
[[:digit:]]
相反。(理解细微的差异;posix依赖于区域设置,但对于travis,区域设置可能是不符合逻辑的。)
相切地说,如果只使用一次数组,就不要使用数组;而且可以避免第一次使用
格雷普
两次;不要将大写字母用于您的私有变量;引用您的变量;并将诊断结果打印为标准错误。
for gofile in $(git diff --name-only origin/master | grep -v vendor | grep '\.go$'); do
if year_line=$(grep -m 1 "(C) Copyright" "$gofile"); then
echo "Year line in $gofile is '$year_line'" >&2
years=($(echo "$year_line" | grep -oE '[[:digit:]]{4}'))
echo "Years is ${years[@]}" >&2
fi
done