Я выполняю сценарий оболочки в Windows 10 через Cygwin, считываю stdout и stderr в строку и передаю эту строку в структуру, которая используется для выполнения html-шаблона.
Проблема в том, что интервал вывода не сохраняется после выполнения шаблона. Вот как я выполняю команду и устанавливаю вывод команды в моей структуре данных.
var outbuf, errbuf bytes.Buffer
cmd.Stdout = &outbuf
cmd.Stderr = &errbuf
err = cmd.Run()
if err != nil {
log.Printf("Error running command: %s", err)
data.Output = errbuf.String()
return data
}
log.Printf("%v", outbuf.String())
data.Output = outbuf.String()
return data
log.Printf выдаст что-то вроде этого, чего я и ожидаю. Отображаются новые строки.
If the same archived message file is in both system/logs and archived_logs, it will be searched/counted twice!
====X1-SC1====
Done
После выполнения команды и обновления моей структуры данных данные выполняются с помощью шаблона html.
err = t.Execute(w, data)
if err != nil {
log.Println(err)
w.WriteHeader(http.StatusInternalServerError)
w.Write([]byte(fmt.Sprintf("Failed to execute html: %v", err)))
return
}
}
<div style="text-align:center">
{{.Output}}
</div>
После перехода кгде мой проект выставлен, я вижу результат, который я ожидаю, но все это в одной строке. Интервал не сохранился. Кажется, что выполнение html / шаблона удаляет лишние пробелы, или строки, или что-то в этом роде. Есть ли способ обойти это?
If the same archived message file is in both system/logs and archived_logs, it will be searched/counted twice! Maybe it'll be fixed in the future.. ====X1-SC1==== Done