我正在 Windows 10 上通过 Cygwin 执行 shell 脚本,将 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
翻翻过去那场雪
相关分类