Потоковые команды выводят прогресс
Я пишу сервис, который должен транслировать вывод выполненной команды как родителю, так и логу. Когда есть долгий процесс, проблема в том, чтоcmd.StdoutPipe
дает мне окончательный (строковый) результат.
Можно ли дать частичный вывод того, что происходит, как в оболочке
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()
}
Постскриптум Просто для вывода будет:
cmd.Stdout = os.Stdout
Но в моем случае этого недостаточно.