在bash字符串中回显html

时间:2018-06-27 03:39:07

标签: html string bash

我是bash新手。

我想使用bash >>运算符将一些html附加到文件末尾。我想用三个串联的部分来构造所说的HTML:一个打开的html标签,一个由bash前面定义的变量和一个关闭的html标签。

类似:

echo <div id="myid"> $myBashVariable </div> >> file.html

我不确定需要哪种语法来转义HTML标记所需的各种字符... <>/"

我该如何进行这项工作?

3 个答案:

答案 0 :(得分:3)

省去麻烦,并使用此处的文档:

#!/bin/sh
var="world"

cat >> file.html << EOF
<html>
  <head>
    <title>Hello $var</title>
  </head>
  <body>
    <div id="whatever">Hello $var, and welcome to my page.</div>
  </body>
</html>
EOF

请注意,$var中的字符不会被HTML转义,因此,如果var='<script>alert(1)</script>'将会显示一个JS弹出窗口。

答案 1 :(得分:1)

您需要使用a

逃脱

在Windows上,

\

在Linux上,

echo "<div id=\"myid\">%myBashVariable%</div>" >> file.html

答案 2 :(得分:1)

\是必须在特殊字符之前添加的转义字符,以转义那些特殊字符的含义。

尝试一下。

echo \<div id=\"myid\"\> $myBashVariable \</div\> >> file.html