我正在编写一个服务,该服务必须将已执行命令的输出流式传输到父级和日志。当有一个很长的过程时,问题是cmd.StdoutPipe给了我一个最终的(字符串)结果。
是否有可能给出正在发生的事情的部分输出,就像在 shell 中一样
func main() {
cmd := exec.Command("sh", "-c", "some long runnig task")
stdout, _ := cmd.StdoutPipe()
cmd.Start()
scanner := bufio.NewScanner(stdout)
for scanner.Scan() {
m := scanner.Text()
fmt.Println(m)
log.Printf(m)
}
cmd.Wait()
}
PS只是输出将是:
cmd.Stdout = os.Stdout
但就我而言,这还不够。
慕田峪9158850
慕神8447489
相关分类