长进程shell脚本cgi?

时间:2010-10-28 20:23:49

标签: shell cgi

我有一个CGI shell脚本,可以下载包列表。它会打印一些有关该过程的信息,然后开始运行它。完成后,它会显示作业的结果。

它完美无缺,但是,在完成此过程后,浏览器才会显示任何内容。是否有某种方法可以告诉浏览器加载已有的信息并紧紧抓住?

例如:

#!/bin/bash
echo -e "Content-type: text/html\n\n"

wgetCom="wget --quiet"

echo "<html><body><pre>"    

    echo    "Downloding autoconf"
    $wgetCom http://people.redhat.com/eblake/autoconf/autoconf-2.68.tar.bz2

    echo    "Downloding automake"
    $wgetCom http://ftp.gnu.org/gnu/automake/automake-1.11.1.tar.bz2

    echo    "Downloding bash"
    $wgetCom http://ftp.gnu.org/gnu/bash/bash-4.1.tar.gz

    echo    "Downloding binutils"
    $wgetCom http://ftp.gnu.org/gnu/binutils/binutils-2.20.1.tar.bz2

    echo "Download is Done"


echo "</pre></body></html>"

我需要的是在处理shell脚本时显示echo。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

您要求的是关闭输出缓冲。我不确定bash是否完全或如何禁用它,但我知道如果配置为压缩输出,apache将不会缓冲。添加包含以下内容的.htaccess文件:

BrowserMatch Mozilla no-gzip

看看它是否神奇地开始工作。如果没有,请回到绘图板。