在 bash 中插入 HTML 块的最佳方法

在 bash 中插入 HTML 块的最佳方法

我一直在编写一个脚本,该脚本收集有关服务器的数据并将其格式化为漂亮的 html 电子邮件报告。到目前为止,我一直在使用 sed 来替换 html 模板中的值,这基本上没问题,但我遇到过一种情况,我需要根据变量插入任意次数的多行 html 块。我不太确定如何做到这一点,因为 sed 似乎对多行的处理不太好?也许有一种我没有考虑过的 perl 或 awk 方法。

这是一个示例,我需要根据现有模板中的文件数量将 0-n 个表块插入到现有模板中

对于 $files 中的 f

  <tr class="details">
        <td> f.$DATE </td>
        <td> f.$APPLIANCE </td>
        <td> f.$HOST </td>
        <td> f.$MDL </td>
  </tr>

ETC。

谢谢!

答案1

使用此处文档:

for f in $files; do
    cat <<END_HTML
  <tr class="details">
        <td> f.$DATE </td>
        <td> f.$APPLIANCE </td>
        <td> f.$HOST </td>
        <td> f.$MDL </td>
  </tr>
END_HTML
done

这将输出与 中的单词一样多的块$files,并将命名变量扩展为其各自的值。

答案2

你可以尝试一下“snippets”,很多文本编辑器或者IDE都支持这个功能。您可以为编码块自定义一些模板并为其命名,然后您可以键入名称和选项卡将其扩展到编码块。此外,您可以使用 Tab 键编辑占位符。

相关内容