如何在HTML文件中使用unix变量

时间:2013-12-27 11:36:30

标签: html shell unix aix

基本理念: 我有一个只有一个表格的HTML。

有些日期,时间和某些数据库查询的结果。 我将此表中的详细信息手动邮寄给人们,直到现在。

我有一个脚本,可以计算此表中所需的所有值。但是我不确定在执行脚本时如何将这些值直接附加到html文件中。

我不知道如何实现这一目标,以及是否可能。

P.S。我发送邮件与sendmail -t尝试发送试用HTML页面,它工作正常。所以真正的问题是我如何将unix脚本中的变量值附加到html文件中。

2 个答案:

答案 0 :(得分:1)

您可能必须在固定的html中提供占位符,然后使用“sed”替换那些具有您的价值的占位符。 例如的test.html:

<html>
....
<div>The date is now %%DATE%%</div>
</html>

然后您的脚本将替换%% DATE %%:

sed "s/%%DATE%%/$(date)/"  test.html

同样,您可以替换环境变量:

export MYDATE="2013-12-27"
sed "s/%%DATE%%/$MYDATE/" test.html

答案 1 :(得分:0)

您可以将HTML文件转换为模板,添加不会与其他内容冲突的标记,然后将标记替换为shell变量,例如给定HTML:

<html>
    <head><title>{{title}}</title></head>
    <body>
        <table>
            <tr><th>Name</th><th>Date</th></tr>
            <tr><td>{{name1}}</td><td>{{date1}}</td></tr>
            <tr><td>{{name2}}</td><td>{{date2}}</td></tr>
        </table>
    </body>
</html>

你可以替换这样的值:

sed -e "s/{{title}}/Recent Stats/g" -e "s/{{date1}}/$(date)/g" -e "s/{{[^}]*}}/UNKNOWN/g" | sendmail

另一种解决方案可能是通过组合标题部分+数据部分+页脚部分来构造要发送的HTML,如下所示:

{ cat header.html; ./script/that/dumps/data.sh; cat footer.html; } | sendmail