我想運行一個shell命令,捕獲stdout並將該輸出寫入文件。但是,我似乎錯過了幾個步驟,因爲當程序存在時,我試圖寫入的文件是空的。如何捕獲命令的stdout並將其寫入文件?在golang中,我該如何將exec.Cmd的stdout寫入文件?
package main
import (
"bufio"
"io"
"os"
"os/exec"
)
func main() {
cmd := exec.Command("echo", "'WHAT THE HECK IS UP'")
// open the out file for writing
outfile, err := os.Create("./out.txt")
if err != nil {
panic(err)
}
defer outfile.Close()
stdoutPipe, err := cmd.StdoutPipe()
if err != nil {
panic(err)
}
writer := bufio.NewWriter(outfile)
err = cmd.Start()
if err != nil {
panic(err)
}
go io.Copy(writer, stdoutPipe)
cmd.Wait()
}
杜,我知道我錯過了一些東西。 – jergason