首页 > 后端开发 > Golang > 如何在 Go 中检索外部命令的退出代码?

如何在 Go 中检索外部命令的退出代码?

Susan Sarandon
发布: 2024-12-28 04:34:09
原创
251 人浏览过

How Can I Retrieve the Exit Code of an External Command in Go?

如何在 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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板