問題:管道指令失敗,退出狀態為1
嘗試使用exec.Command()透過管線傳輸指令時,出現下列錯誤發生:
ps, "cax | grep myapp"
為什麼這個指令在 ps cax 運作時失敗?
A:使用exec.Command() 進行慣用管道
透過bash 的整個命令可以解決該問題,但還有一個更慣用的方法解決方案:
程式碼範例:
package main import ( "fmt" "os/exec" ) func main() { grep := exec.Command("grep", "redis") ps := exec.Command("ps", "cax") // Connect ps's stdout to grep's stdin. pipe, _ := ps.StdoutPipe() defer pipe.Close() grep.Stdin = pipe // Run ps first. ps.Start() // Run and get the output of grep. res, _ := grep.Output() fmt.Println(string(res)) }
說明:說明:
以上是為什麼 Go 的 exec.Command() 中的管道命令失敗,該如何修復?的詳細內容。更多資訊請關注PHP中文網其他相關文章!