2010-10-28 21 views
0

J'ai un script shell CGI qui télécharge une liste de paquets. Et il imprime des informations sur le processus, puis commence à l'exécuter. Une fois terminé, il montre le résultat du travail.script de shell de processus long cgi?

Cela fonctionne parfaitement, cependant, sur le navigateur ne montre rien jusqu'à ce que le processus est terminé. Existe-t-il un moyen de dire au navigateur de charger les informations qu'il possède déjà et de les conserver?

par exemple:

 
#!/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>" 

ce que je dois est de montrer les années d'écho tandis que le processus de script shell.

Toute aide serait grandement appréciée.

Répondre

0

Ce que vous demandez est de désactiver la mise en mémoire tampon de sortie. Je ne suis pas sûr si bash fait du tout ou comment le désactiver, mais je sais que apache ne tamponnera pas s'il est configuré pour compresser la sortie. Ajoutez un fichier .htaccess avec ce contenu:

BrowserMatch Mozilla no-gzip 

Et voyez si ça commence magiquement à fonctionner. Sinon, revenez à la planche à dessin.