我有这个代码来运行zsh并将其输出记录到输出文件中。
package main
import (
"io"
"os"
"os/exec"
)
func main() {
cmd := exec.Command("zsh")
f, _ := os.Create("log.txt")
multiWriter := io.MultiWriter(os.Stdout, f)
cmd.Stdout = multiWriter
cmd.Stderr = os.Stderr
cmd.Stdin = os.Stdin
cmd.Run()
}
func haltOnError(err error) {
if err != nil {
panic(err)
}
}
程序执行时,打字ls会输出
foo
bar
而如果我让cmd.Stdout = os.Stdout,它会正确显示为
foo bar
是什么导致之间的差异os.Stdout和multiwriter?
慕田峪7331174
相关分类