为了账号安全,请及时绑定邮箱和手机立即绑定

如何将缓冲区打印到标准输出但也捕获为字符串?

如何将缓冲区打印到标准输出但也捕获为字符串?

Go
大话西游666 2022-11-28 17:18:27
我知道如何捕获 a 的输出,exec.Command但我还想stdout在捕获它的同时将其流式传输到。感谢您的任何输入!package mainimport (    "bytes"    "fmt"    "os/exec")func main() {    cmd := exec.Command("ls")    var out bytes.Buffer    cmd.Stdout = &out    cmd.Run()    fmt.Println(out.String())}
查看完整描述

1 回答

?
MMTTMM

TA贡献1869条经验 获得超4个赞

使用示例io.MultiWriter

package main


import (

    "io"

    "os"

    "bytes"

    "fmt"

    "os/exec"

)


func main() {

    cmd := exec.Command("ls")

    var out bytes.Buffer

    w := io.MultiWriter(os.Stdout, &out)

    cmd.Stdout = w

    fmt.Printf("===Stdout:===\n")

    cmd.Run()

    fmt.Printf("\n===Variable:===\n")

    fmt.Println(out.String())

}


查看完整回答
反对 回复 2022-11-28
  • 1 回答
  • 0 关注
  • 86 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信