這有效res = exec.Command(gitCmd, cmdArgs...)res.Stdout, res.Stderr = os.Stdout,os.Stderr執(zhí)行 git 命令時,git clone ..您會得到完整的語法響應(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.但是如果你把它包裝在一個像這樣的多寫器中res = exec.Command(gitCmd, cmdArgs...)res.Stdout, res.Stderr = io.MultiWriter(os.Stdout),io.MultiWriter(os.Stderr)您會丟失通??吹降乃薪馕?接收輸出。為什么 ?以下工作但對我來說似乎沒有必要,恕我直言 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