我正在尝试将使用pyflakes
检查我的代码集成到构建过程中。我已在Makefile
中定义了以下目标:
pyflakes:
find $(APPLICATION_DIRECTORY) -iname "*.py" -exec pyflakes "{}" \;
问题在于,即使存在代码问题(
pyflakes
返回不为0
),find
每次都会返回0
,而make
却成功了。理想情况下,我希望对每个源文件运行检查,并且如果-exec
中的至少一个命令失败,则停止make
。有没有办法实现这一点呢?
cmd; if [ $? -ne 0 ]; then foo; fi
只是一种反模式;正确的编码方式是if cmd; then foo; fi
或者简单地使用cmd || foo
。 - tripleeepyflakes "$line" || exit $?
,简短而简单。 - tripleee$?
是不符合惯用法的;if
的作用是运行一个命令并检查其退出代码是否为零。 - tripleee