我正在使用包:os/exec http://golang.org/pkg/os/exec/ 在操作系统中执行命令,但我似乎没有找到获取退出代码的方法。我可以读取输出
IE。
package main
import(
"os/exec"
"bytes"
"fmt"
"log"
)
func main() {
cmd := exec.Command("somecommand", "parameter")
var out bytes.Buffer
cmd.Stdout = &out
if err := cmd.Run() ; err != nil {
//log.Fatal( cmd.ProcessState.Success() )
log.Fatal( err )
}
fmt.Printf("%q\n", out.String() )
}
原文由 OscarRyz 发布,翻译遵循 CC BY-SA 4.0 许可协议
很容易确定退出代码是 0 还是其他。在第一种情况下,
cmd.Wait()
将返回 nil(除非在设置管道时出现另一个错误)。不幸的是,没有平台独立的方法来获取错误情况下的退出代码。这也是它不是 API 一部分的原因。以下代码片段适用于 Linux,但我尚未在其他平台上测试过它:
只需 按照 api 文档 了解 更多信息 :)