0

场景:我从 python 获得了包含一组值的列表变量,我想将这些列表值放入运行时生成的 html 文件中。

测试邮件.sh

**cat << EOF > ~/**test.html

<html>

<head>
    <title>

    My System information

    </title>

</head>

<body>

<h1> My system information : </h1>

for value in "$@" // 这包含从 python 接收的列表值。

$价值

完毕

</body>

</html>

EOF

上面的代码在 testmail.sh 中,它生成 test.html 显示值..

但我希望这些值以正确的格式放在 html 中的正文中.. 但它不起作用...

4

2 回答 2

0

像这样的东西?

python script.py |
sed -e '1i\<ul>' -e 's%.*%<li>&</li>%' -e '$a\</ul>'

...但最好还是在 Python 脚本中添加一个选项以生成 HTML(ish) 输出。

如果你想从 Python 驱动 shell 脚本,你也可以在 Python 中进行 HTML 格式化。

import subprocess

pipe = subprocess.Popen("testmail.sh", stdin=subprocess.PIPE)
pipe.stdin.write('<ul>\n')
for item in correctList:
    pipe.stdin.write('<li>%s</li>\n' % item)
pipe.stdin.write('</ul>\n')
pipe.stdin.close()

这假设您testmail.sh从标准输入读取其数据,但显然还不是这种情况,因此您需要稍微更改您拥有的内容。

于 2013-09-03T04:54:47.143 回答
0

我假设您真的是在使用 bash 脚本而不是使用 "$@" 参数,因为这没有任何意义。=)

示例输出:

$ echo -e "one\n two\n three" | bash foo.html 
<html>
<p>one</p>
<p>two</p>
<p>three</p>
</html>

执行此操作的 Shell 脚本:

$ cat foo.html 
cat <<END
<html>
END
while read LINE
do
echo "<p>${LINE}</p>"
done
cat <<END
</html>
END
于 2013-09-03T04:38:16.540 回答