我想将 gofmt 添加到 CI/CD 管道中。如果它产生变化,我希望 gofmt 以状态 1 退出。
例如,如果我运行gofmt -s -l .并且列出了一些文件。我希望它以状态 1 退出。现在,当我运行时,echo $?给我 0,即使有一些文件列出了 gofmt 的更改。
我检查了文档,找不到相应的命令行选项。有 bash hack 可以做到这一点吗?
您只需通过检查 的输出非空来确保是否gofmt再列出一行输出,然后运行二进制文件,将退出代码设置为调用的 shell 或用于显式退出脚本。wc -lfalse1exit 1
if [ "$(gofmt -s -l . | wc -l)" -gt 0 ]; then
exit 1
fi
Run Code Online (Sandbox Code Playgroud)
当你说即使列出了文件gofmt实际上也会返回?在这种情况下你也可以简单地做$?0
if gofmt -s -l . > /dev/null; then
exit 1
fi
Run Code Online (Sandbox Code Playgroud)
上述if条件依赖于gofmtas返回的退出代码0,表明命令成功,条件将断言为 true。