我想将gofmt添加到CI/CD管道中。如果它产生变化,我希望gofmt退出,状态为1。
例如,如果我运行gofmt -s -l .,并且列出了一些文件。我想让它以1状态退出,当我运行echo $?的时候,它给我的状态是0,即使有一些文件列在gofmt的更改中。
我检查了文档,但找不到相应的命令行选项。有没有能做到这一点的bash hack?
发布于 2019-05-03 18:20:44
您只需通过检查wc -l的输出是否是非空来确保gofmt是否列出了多行输出,然后运行二进制false,它将退出代码设置为1,以调用shell,或者使用exit 1显式退出脚本。
if [ "$(gofmt -s -l . | wc -l)" -gt 0 ]; then
exit 1
fi当您说gofmt实际上返回$?作为0时,即使有列出的文件?,在这种情况下,您也可以简单地这样做
if gofmt -s -l . > /dev/null; then
exit 1
fi上面的if条件依赖于gofmt返回的退出代码,因为0将指示命令成功,条件将断言true。
发布于 2021-06-14 05:04:55
您可以使用
test -z $(gofmt -l .)https://stackoverflow.com/questions/55967709
复制相似问题