You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Shell脚本中创建HTML文件?请协助排查代码问题

解决Shell脚本生成HTML文件的问题

我瞅了下你这段脚本,问题主要出在输出重定向的范围和一些小的HTML语法错误上,咱们一步步来改:

问题分析

你现在的写法里,每个echo都是独立的命令,只有最后一个echo后面加了>> text.html,前面所有echo的内容都直接打印到终端了,根本没写入到HTML文件里。另外还有几处HTML的小问题:

  • 多余的</h4>标签(你根本没打开过<h4>标签)
  • <col>标签放错位置了,它应该在<table>内部、<thead>之前,而不是嵌套在<th>里面
  • 部分font color的值少了#(比如color="000000"应该是color="#000000")

修正方案1:统一重定向所有echo输出

把所有echo命令用括号包起来,整体重定向到文件,这样所有输出都会写入text.html:

(
echo "<html>"
echo "<head>"
echo "<style type=\"text/css\">"
echo "table{background-color:#DCDCDC}"
echo "thead {color:#708090}"
echo "tbody {color:#191970}"
echo "</style>"
echo "</head>"
echo "<body>"
echo "<table border=\"1\">"
echo "<col width=\"100\">"
echo "<col width=\"100\">"
echo "<col width=\"100\">"
echo "<thead>"
echo "<tr bgcolor='#C0C0C0'><td colspan=\"3\"><center><font color=\"#000000\"><b>CONSOLIDATED RUNBOOK</b></font></center></td></tr>"
echo "<tr>"
echo "<th><font color=\"#000000\">APP NAME</font></th>"
echo "<th><font color=\"#000000\">STATUS</font></th>"
echo "<th><font color=\"#000000\">STATUS AS ON</font></th>"
echo "</tr>"
echo "</thead>"
# 这里可以继续添加tbody的内容
echo "</table>"
echo "</body>"
echo "</html>"
) >> text.html

修正方案2:用Here-Doc更简洁(推荐)

Here-Doc是Shell里生成多行内容更方便的方式,不用反复写echo和转义引号,代码可读性更高:

cat > text.html << EOF
<html>
<head>
<style type="text/css">
table{background-color:#DCDCDC}
thead {color:#708090}
tbody {color:#191970}
</style>
</head>
<body>
<table border="1">
<col width="100">
<col width="100">
<col width="100">
<thead>
<tr bgcolor='#C0C0C0'><td colspan="3"><center><font color="#000000"><b>CONSOLIDATED RUNBOOK</b></font></center></td></tr>
<tr>
<th><font color="#000000">APP NAME</font></th>
<th><font color="#000000">STATUS</font></th>
<th><font color="#000000">STATUS AS ON</font></th>
</tr>
</thead>
<!-- 在这里添加你的tbody内容 -->
</table>
</body>
</html>
EOF

这样写不仅避免了引号转义的麻烦,还能一次性把所有内容写入目标文件,后续维护也更轻松。

内容的提问来源于stack exchange,提问作者Arpit Rathod

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 09:45:29