On Friday 13 May 2005 18:41, Tarhon-Onu Victor wrote:
> On Fri, 13 May 2005, Mihai Maties wrote:
> > Pai bucata de cod pe care ai dat-o mai sus exact asta face daca nu-i
> > dai sa ia fisierele in background :)
>
> Nu. Ce face acea bucata de cod este sa inceapa wget pe fisierX
> dupa ce s-a terminat wget-ul pentru fisierX-1. Asta nu inseamna neaparat
> ca wget-ul pentru fisierX-1 s-a terminat cu succes. Probabil bucata de
> cod ar trebui sa arate cam asa:
>
> for f in $(seq 1 500); do
> do {
> wget "http://url/download.php?ID=$f&l=5";
> } while [ "$?" != "0" ];
> done;
- for-ul se poate scrie direct in bash pentru a elimina executia inutila a lui
seq: for ((i=1;i<500;i++)); do ...
- folosirea while-ului in cazul asta nu e indicata pentru ca daca iti lipseste
primul fisier wget-ul va returna eroare si scriptul nu se va termina
niciodata si nici nu va aduce vreun fisier. In afara de asta daca download-ul
unui fisier esueaza din cauze reparabile (e.g. read error) wget-ul va
reincerca implicit sa ia acel fisier de 20 de ori.
Dar dupa cum a fost formulata intrebarea cred ca intr-adevar problema lui Radu
era ca url-ul dat wget-ului nu era intre ghilimele si din cauza &-ului
porneau toate instantele in background.
Mihai
---
Detalii despre listele noastre de mail: http://www.lug.ro/