shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] script de download


From: MrBiTs
Subject: Re: [shell-script] script de download
Date: Sun, 23 Oct 2005 08:52:07 -0200
User-agent: Mozilla Thunderbird 1.0.7 (X11/20051013)

/*
 Com certeza que copiei mano, depois vi que o texto esta junto da {, o
script
 ja ta funcionando mano, mais o problema e que eu e ele estamos tentando um
 problema para que o script note que o download terminou e continue a
 execultar os comandos, uma vez que estamos usando o arquivo wget-log
para pegar as informações. apenas isso MrBits.
*/

Isso é a parte simples da coisa. O que não deixa o script continuar é o
tail -f que, após o final do download, não "morre". A idéia é matar o
tail, então. Na man page do tail vemos que existe uma opção --pid=PID
que, usada em conjunto com o -f, "mata" o tail assim que PID ( que é o
ID do processo em background que estamos rodando ) morrer. Então,
alterando ligeiramente o script do Thiago:


$ cat -vet teste.sh
#!/bin/bash$
LOG="wget-log"$
FILE="HelixPlayer-1.0.4-4.src.rpm"$
MSG="Baixando o arquivo $FILE"$
URL="ftp://ftp.linux.ncsu.edu/pub/fedora/linux/core/4/SRPMS/"$
$
error() { echo "fail to load $FILE in $URL" ; exit 1 ; }$
$
(wget -o $LOG ${URL}${FILE} & PID=$! || error && tail -f $LOG --pid=$PID
| while read LINHA$
do echo $LINHA | grep % | cut -f 2 -d K | cut -d % -f 1 | sed 's/[^0-9]//g'$
done) | dialog --gauge "$MSG" 8 40 0$
clear
echo "$FILE Download Completed"


As modificações aí foram remover o parametro -b do wget ( que por algum
motivo não retornava a variável $! ) e trocar para um &, que joga o
processo em background, jogar o ID do processo wget para uma variável
PID e passar essa variável para o parâmetro --pid do tail.

Cuidado com as quebras de linha no script. O caracter $ no final de cada
uma delas indica que um enter foi teclado.


[As partes desta mensagem que não continham texto foram removidas]



reply via email to

[Prev in Thread] Current Thread [Next in Thread]