我想在 Go 中執行一個命令,并將其 stdout 和 stderr 合并到一個流中。我寫了這段代碼,它只能從標準輸出中讀取,但我不知道如何將它與標準錯誤結合起來:package mainimport ( "fmt" "os" "os/exec" "bufio")func runCommand() { var ( err error ) cmdName := "docker" cmdArgs := []string{"build", "--no-cache=true", "--force-rm=true", "."} cmd := exec.Command(cmdName, cmdArgs...) cmdReader, err := cmd.StdoutPipe() if err != nil { fmt.Fprintln(os.Stderr, "Error creating StdoutPipe for Cmd", err) } scanner := bufio.NewScanner(cmdReader) go func() { for scanner.Scan() { fmt.Printf("docker build out | %s\n", scanner.Text()) } }() err = cmd.Start() if err != nil { fmt.Fprintln(os.Stderr, "Error starting Cmd", err) } err = cmd.Wait() if err != nil { fmt.Fprintln(os.Stderr, "Error waiting for Cmd", err) }}func main() { runCommand()}感謝所有的答案!
Go - 結合 cmd.StdoutPipe 和 Cmd.StderrPipe
慕蓋茨4494581
2021-12-20 19:09:38