我想做的是:
cmd := exec.Command(someCommand)
cmd.Stdout = os.Stdout
cmd.Run()
save(os.Stdout)
因为此命令需要很长时间才能执行,所以我想立即在屏幕上打印结果。所以我不想使用result := cmd.Output() fmt.Print(result)
来保存输出然后打印
答案 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.