我想使用GO在Windows 10上运行异步命令。我运行的命令是阻塞的,如果直接从终端运行它会提供一个持续的状态消息流,直到ctrl-c
我想从GO通过exec运行该命令,并实时捕获exec命令的输出到终端,即不仅在GO应用程序终止时。
我尝试了很多例子,但没有成功,我只是得到一个空白终端,即使退出GO应用程序,我也看不到我执行的命令的输出。
答案 0 :(得分:1)
您可以使用cmd.StdoutPipe
来执行此操作:
cmd := exec.Command(cmdName, cmdArgs...)
cmdReader, _ := cmd.StdoutPipe()
scanner := bufio.NewScanner(cmdReader)
go func() {
for scanner.Scan() {
fmt.Printf(scanner.Text())
}
}()
cmd.Start()
err = cmd.Wait()