首頁 > 後端開發 > Golang > 為什麼 Go 中的 exec.Command 返回「退出狀態 1」以及如何取得更多資訊?

為什麼 Go 中的 exec.Command 返回「退出狀態 1」以及如何取得更多資訊?

Patricia Arquette
發布: 2024-11-13 13:32:02
原創
850 人瀏覽過

Why Does exec.Command in Go Return

調試Golang Exec.Command 中的「退出狀態1」錯誤

在Golang 中使用exec.Command 時,遇到神秘的「退出狀態1」錯誤,讓人抓狂他們負責了解具體細節。本文旨在闡明此錯誤的原因並提供更詳細診斷的解決方案。

考慮以下程式碼:

cmd := exec.Command("find", "/", "-maxdepth", "1", "-exec", "wc", "-c", "{}", "\")
var out bytes.Buffer
cmd.Stdout = &out
err := cmd.Run()
登入後複製

執行此程式碼會導致無訊息的「退出狀態 1」錯誤。要解決此問題,請利用Command 物件的Stderr 屬性:

var stderr bytes.Buffer
cmd.Stderr = &stderr
登入後複製

執行時,錯誤訊息將變得明顯:

exit status 1: find: -exec: no terminating ";" or "+"
登入後複製

現在,有了這個詳細的錯誤,您可以相應地解決問題。

注意: 值得考慮的是,某些指令可能會將錯誤訊息重新導向到 stdout 而不是 stderr。此外,某些指令可能會向 stderr 列印錯誤訊息,但仍會傳回零錯誤代碼(導致程式碼中出現 nil 錯誤)。因此,可能需要調整給定的解決方案以適應您正在使用的特定命令。

以上是為什麼 Go 中的 exec.Command 返回「退出狀態 1」以及如何取得更多資訊?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板