在golang中,如何在打印到标准输出的同时将标准输出保存到字符串?

在golang中,如何在打印到标准输出的同时将标准输出保存到字符串?,go,operating-system,Go,Operating System,我想做的是: cmd := exec.Command(someCommand) cmd.Stdout = os.Stdout cmd.Run() save(os.Stdout) 因为执行这个命令需要很长时间,所以我想立即在屏幕上打印结果。因此,我不想使用result:=cmd.Output()fmt.Print(result)保存输出,然后打印一个: 实现一个io.Writer,它可以写入文件和标准格式,非常优雅! cmd := exec.Command(someCommand) var bu

我想做的是:

cmd := exec.Command(someCommand)
cmd.Stdout = os.Stdout
cmd.Run()
save(os.Stdout)
因为执行这个命令需要很长时间,所以我想立即在屏幕上打印结果。因此,我不想使用
result:=cmd.Output()fmt.Print(result)
保存输出,然后打印一个:


实现一个
io.Writer
,它可以写入文件和标准格式,非常优雅!
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.