gpt4 book ai didi

file-io - 在 golang 中,如何将 exec.Cmd 的标准输出写入文件?

转载 作者:IT老高 更新时间:2023-10-28 13:01:41 35 4
gpt4 key购买 nike

我正在尝试运行 shell 命令,捕获标准输出并将该输出写入文件。但是,我似乎缺少一些步骤,因为当程序存在时,我尝试写入的文件是空的。如何捕获命令的标准输出并将其写入文件?

package main

import (
"bufio"
"io"
"os"
"os/exec"
)

func main() {

cmd := exec.Command("echo", "'WHAT THE HECK IS UP'")

// open the out file for writing
outfile, err := os.Create("./out.txt")
if err != nil {
panic(err)
}
defer outfile.Close()

stdoutPipe, err := cmd.StdoutPipe()
if err != nil {
panic(err)
}

writer := bufio.NewWriter(outfile)

err = cmd.Start()
if err != nil {
panic(err)
}

go io.Copy(writer, stdoutPipe)
cmd.Wait()
}

最佳答案

感谢 #go-nuts irc channel 上的 KirkMcDonald,我通过将输出文件分配给 cmd.Stdout 解决了这个问题。 ,这意味着 stdout 直接写入文件。它看起来像这样:

package main

import (
"os"
"os/exec"
)

func main() {

cmd := exec.Command("echo", "'WHAT THE HECK IS UP'")

// open the out file for writing
outfile, err := os.Create("./out.txt")
if err != nil {
panic(err)
}
defer outfile.Close()
cmd.Stdout = outfile

err = cmd.Start(); if err != nil {
panic(err)
}
cmd.Wait()
}

关于file-io - 在 golang 中,如何将 exec.Cmd 的标准输出写入文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18986943/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com