apache cgi-bin、bash和格式化输出

w8f9ii69  于 2023-06-06  发布在  Apache
关注(0)|答案(2)|浏览(503)

cat /usr/lib/cgi-bin/test00.cgi

#!/bin/bash
echo "Content-type: text/html"
cat /tmp/file

结果是:

one two three four

如何像bash脚本一样格式化输出(带换行符)?

one
two
three
four
63lcw9qa

63lcw9qa1#

在这里,您可以同时使用html和UNIX命令

#!/bin/bash

echo Content-type: text/html
echo ""

/bin/cat << EOM
<HTML>
<HEAD><TITLE>File Output: /tmp/file </TITLE>
</HEAD>
<BODY bgcolor="#cccccc" text="#000000">
<HR SIZE=5>
<H1>File Output: /tmp/file </H1>
<HR SIZE=5>
<P>
<SMALL>
<PRE>
EOM

/bin/cat /tmp/file

CAT << EOM
</PRE>
</SMALL>
<P>
</BODY>
</HTML>
EOM
fv2wmkja

fv2wmkja2#

HTML中的文本是https://developer.mozilla.org/en-US/docs/Glossary/Inline-level_content的主题,因此所有的空白(包括新行)都被替换为单个(或更多,取决于对齐方式)空格。
要改变呈现,您可以将文本包含到具有指定呈现模型的另一个HTML元素中:

<div>line 1</div>
<div>line 2</div>

或:

<pre>
line 1
line 2
</pre>

Bash使用方便的here-document语法<<来编写上面的代码:

#!/bin/bash

cat <<EOF
Content-Type: text/html

<pre>
line 1
line 2
</pre>
EOF

或者,您可以使用Content-Typetext/plain来保留原始文本格式:

#!/bin/bash

cat <<EOF
Content-Type: text/plain

line 1
line 2
EOF

相关问题