我有这个代码,我也希望在完成文本提取等时获得cmd.Stdout
的完整输出。
func main() {
cmd := exec.Command("readinggame")
cmd.Stdout = os.Stdout
cmd.Run()
}
我似乎无法找到一种方法,可以在输出完成时将输出设为[]byte
或string
。顺便说一下,我不想用ReadLine
(或类似的东西)迭代输出,这恰好运行良好,我只想要一个完整的输出,比如
var out bytes.Buffer
cmd.Stdout = &out
if err := cmd.Run(); err != nil {
log.Fatal(err)
}
fmt.Println(out.String())
答案 0 :(得分:4)
这完全是预期的结果......所需要的只是io.MultiWriter
。
func main() {
cmd := exec.Command("ping", "google.com")
var out bytes.Buffer
multi := io.MultiWriter(os.Stdout, &out)
cmd.Stdout = multi
if err := cmd.Run(); err != nil {
log.Fatalln(err)
}
fmt.Printf("\n*** FULL OUTPUT *** %s\n", out.String())
}