2010-10-28 202 views
0

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

它的工作原理非常完美,但是,在浏览器显示完成后才显示任何内容。有没有什么方法可以告诉浏览器加载已经拥有的信息并保持紧密?

例如:

 
#!/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脚本。

任何帮助将不胜感激。

回答

0

你要求的是关闭输出缓冲。我不确定bash是否可以执行或如何禁用它,但是我确实知道apache在配置压缩输出时不会缓冲。添加.htaccess文件包含以下内容:

BrowserMatch Mozilla no-gzip 

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