Tôi đang cố gắng chạy lệnh shell, capture stdout và ghi đầu ra đó vào một tệp. Tuy nhiên, tôi dường như bị thiếu một vài bước, vì tệp tôi đang cố gắng viết trống khi chương trình tồn tại. Làm thế nào tôi có thể nắm bắt được stdout của lệnh và viết nó vào một tập tin?Trong golang làm thế nào tôi có thể viết stdout của một exec.Cmd vào một tập tin?
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()
}
Duh, tôi biết tôi đã bỏ lỡ điều gì đó. – jergason