基本理念: 我有一个只有一个表格的HTML。
有些日期,时间和某些数据库查询的结果。 我将此表中的详细信息手动邮寄给人们,直到现在。
我有一个脚本,可以计算此表中所需的所有值。但是我不确定在执行脚本时如何将这些值直接附加到html文件中。
我不知道如何实现这一目标,以及是否可能。
P.S。我发送邮件与sendmail -t尝试发送试用HTML页面,它工作正常。所以真正的问题是我如何将unix脚本中的变量值附加到html文件中。
答案 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