如何使用 Go 获取退出代码
在 Go 中,os/exec 包提供了执行系统命令的方法。然而,检索退出代码是一个挑战。
成功时检索退出代码
当命令以退出代码 0 退出时,cmd.Wait() 函数返回nil。
失败时检索退出代码(适用于 Linux仅)
对于 Linux 系统,以下代码片段演示了如何在命令失败时获取退出代码:
import ( "fmt" "log" "os/exec" "syscall" ) func main() { cmd := exec.Command("git", "blub") if err := cmd.Start(); err != nil { log.Fatalf("cmd.Start: %v", err) } if err := cmd.Wait(); err != nil { if exiterr, ok := err.(*exec.ExitError); ok { fmt.Printf("Exit Status: %d", exiterr.ExitCode()) } else { log.Fatalf("cmd.Wait: %v", err) } } }
无跨平台方法
不幸的是,没有跨平台方法可以在失败时检索退出代码。 os/exec API 在设计上缺乏此功能。
其他资源
这篇综合文章详细阐述了此主题并提供了其他技术细节:http://golang。 org/pkg/os/exec/
以上是如何在 Go 中检索系统命令的退出代码?的详细内容。更多信息请关注PHP中文网其他相关文章!