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

exec.Command 设置输出流未获取所有数据

exec.Command 设置输出流未获取所有数据

Go
繁星点点滴滴 2021-09-20 20:53:41
这有效res = exec.Command(gitCmd, cmdArgs...)res.Stdout, res.Stderr = os.Stdout,os.Stderr执行 git 命令时,git clone ..您会得到完整的语法响应,例如remote: Counting objects: 15, done.remote: Compressing objects: 100% (10/10), done.remote: Total 15 (delta 4), reused 0 (delta 0)Receiving objects: 100% (15/15), done.Resolving deltas: 100% (4/4), done.但是如果你把它包装在一个像这样的多写器中res = exec.Command(gitCmd, cmdArgs...)res.Stdout, res.Stderr = io.MultiWriter(os.Stdout),io.MultiWriter(os.Stderr)您会丢失通常看到的所有解析/接收输出。为什么 ?以下工作但对我来说似乎没有必要,恕我直言 io.MultiWriter 应该做同样的......res = exec.Command(gitCmd, cmdArgs...)res.Stdout, res.Stderr = os.Stdout,os.Stderrstdout, stderr = new(bytes.Buffer), new(bytes.Buffer)go io.Copy(os.Stdout,stdout)go io.Copy(os.Stderr,stderr)
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 303 浏览
慕课专栏
更多

添加回答

举报

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