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

如何在 Go 中检索系统命令的退出代码?

Patricia Arquette
Patricia Arquette原创
2024-12-19 07:59:32169浏览

How to Retrieve the Exit Code of a System Command in Go?

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

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn