如何在golang中同时将stdout保存为字符串时打印到stdout?

时间:2016-05-18 02:39:05

标签: go operating-system

我想做的是:

cmd := exec.Command(someCommand)
cmd.Stdout = os.Stdout
cmd.Run()
save(os.Stdout)

因为此命令需要很长时间才能执行,所以我想立即在屏幕上打印结果。所以我不想使用result := cmd.Output() fmt.Print(result)来保存输出然后打印

1 个答案:

答案 0 :(得分:3)

美国MultiWriter

cmd := exec.Command(someCommand)
var buf bytes.Buffer
cmd.Stdout = io.MultiWriter(os.Stdout, &buf)
cmd.Run()
save(buf.Bytes())  // Bytes() returns a []byte containing the stdout from the commmand.