当前,我遍历.py
目录中的每个/
文件。对于每次迭代,我都会调用pycodestyle
并在看到错误后立即退出。
但是我想查看每个文件的所有错误消息,即使文件中的任何一个在<<之前有错误,这也可以帮助开发人员查看他/她应更改哪些行才能通过测试(掉毛)
如果没有文件打印错误,请不要打印错误。 <<这对我的Jenkins管道很有用。
for file in $(find /-type d -name test -prune -o -type f -name '*.py' -print); do
filename=$(basename $file)
if [[ $filename != "__init__.py" ]] ; then
echo "$file"
pycodestyle "${file}" || exit 1 <<< This causes an error.
<< If it passes the linting, it doesn't exit.
fi
done
我的解决方案:
以某种方式,我需要一个布尔局部变量来显示它是否显示错误。最后,我可以检查变量并返回退出与否。但是我不知道该怎么实现...谢谢!
答案 0 :(得分:2)
设置一个变量,而不是退出,最后对它进行测试,以便以正确的状态退出。
status=0
for file in $(find /-type d -name test -prune -o -type f -name '*.py' ! -name '__init__.py' -print); do
echo "$file"
pycodestyle "${file}" || status=1
done
exit "$status"
此外,您可以在__init__.py
命令中过滤掉find
,因此不需要if
(我在Exclude a certain directory while (find command) - BASH中向您展示了相同的内容)。