這有效res = exec.Command(gitCmd, cmdArgs...)res.Stdout, res.Stderr = os.Stdout,os.Stderr執(zhí)行 git 命令時(shí),git clone ..您會(huì)得到完整的語(yǔ)法響應(yīng),例如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.但是如果你把它包裝在一個(gè)像這樣的多寫(xiě)器中res = exec.Command(gitCmd, cmdArgs...)res.Stdout, res.Stderr = io.MultiWriter(os.Stdout),io.MultiWriter(os.Stderr)您會(huì)丟失通常看到的所有解析/接收輸出。為什么 ?以下工作但對(duì)我來(lái)說(shuō)似乎沒(méi)有必要,恕我直言 io.MultiWriter 應(yīng)該做同樣的......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)
exec.Command 設(shè)置輸出流未獲取所有數(shù)據(jù)
繁星點(diǎn)點(diǎn)滴滴
2021-09-20 20:53:41