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