如何在 Go 中检索退出代码
使用 os/exec 包在操作系统中执行命令时,经常会遇到困难检索退出代码。虽然可以通过捕获 stdout 来读取输出,但获取退出代码仍然是一个挑战。
解决方案:
确定退出代码是否为 0可以通过cmd.Wait()来实现,成功退出时返回nil。但是,当退出代码非零时,获取它可能会变得更加复杂。这是由于退出代码检索的平台相关性。
针对 Linux 的平台特定方法:
尽管没有跨平台的方法来检索退出代码,以下代码片段可以在 Linux 系统上使用:
import "syscall" 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 { log.Printf("Exit Status: %d", exiterr.ExitCode()) } else { log.Fatalf("cmd.Wait: %v", err) } }
此方法允许检索特定于 Linux 的退出代码系统。然而,值得注意的是,这种方法可能并不普遍适用。
其他资源:
有关 Go 中退出代码处理的更多信息可以在包文档:
[os/exec - 进程管理](https://golang.org/pkg/os/exec/)
以上是如何在 Go 中检索外部命令的退出代码?的详细内容。更多信息请关注PHP中文网其他相关文章!