过去几天这个让我很生气。我有一个bash脚本,它在命令行运行时可以正常工作,但在被称为cgi-bin脚本时不起作用。
这是脚本:
#!/bin/bash
ID=''
echo Content-type: text/html
echo
echo "<html><head></head><body>"
NID=`date "+%N"$RANDOM`
BASE36=($(echo {0..9} {a..z}));
for i in $(bc <<< "obase=36; $NID")
do
TMPID=`echo ${BASE36[$(( 10#$i ))]}`
ID="$ID$TMPID"
# echo "<p> Loop ID=$ID"
done
tempfile=`mktemp`
echo $ID > $tempfile
echo "<h1>BASE36 ID</h1>"
echo "<h1>ID = $ID</h1>"
echo -n "<h1>"
cat $tempfile
rm $tempfile
echo -n "</h1>"
echo "</body></html>"
从shell运行时,脚本会输出预期结果:
Content-type: text/html
<html><head></head><body>
<h1>BASE36 ID</h1>
<h1>ID = m9ykx0g4s</h1>
<h1>m9ykx0g4s
</h1></body></html>
但是当作为CGI-BIN脚本运行时,它不会输出预期的:
<html><head></head><body>
<h1>BASE36 ID</h1>
<h1>ID = </h1>
<h1>
任何人都可以帮忙吗?