我是bash新手。
我想使用bash >>
运算符将一些html附加到文件末尾。我想用三个串联的部分来构造所说的HTML:一个打开的html标签,一个由bash前面定义的变量和一个关闭的html标签。
类似:
echo <div id="myid"> $myBashVariable </div> >> file.html
我不确定需要哪种语法来转义HTML标记所需的各种字符... <
,>
,/
,"
。
我该如何进行这项工作?
答案 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