如何检查 git repo 中是否存在禁用词

问题描述 投票:0回答:1

我想使用 git grep 来检查存储库中是否有禁止的字符串。

if git grep --full-name --extended-regexp --line-number 'bad|words'
then
    echo has bad words
else
    echo does not have bad words
fi

这样做的一个问题是,如果

git grep
命令由于其他原因(例如格式错误)而失败,脚本会报告没有坏词,但实际上它不知道命令中是否有坏词。回购所以这样分支是不安全的。

我想知道

git grep
失败是因为它没有找到任何东西,还是因为它有另一个错误导致它退出,甚至没有尝试找到任何东西。

我希望

git grep
对于坏词返回与错误相同的退出状态。只有当它确认没有坏词时,才应该返回一个唯一的退出状态代码。

git grep
1个回答
1
投票

检查退出代码。由于有 3 种变体(已找到、未找到、错误),因此您不能只使用

if
/
else

git grep --full-name --extended-regexp --line-number 'bad|words'
rc=$? # save exit code

if [ $rc -eq 0 ]
then
    echo has bad words
elif [ $rc -eq 1 ]
    echo does not have bad words
else
    echo error >&2
fi
exit $rc # return the exit code back to the caller
© www.soinside.com 2019 - 2024. All rights reserved.