On Friday 13 May 2005 20:19, Ratiu Petru wrote: > On 5/13/05, B.V. <[EMAIL PROTECTED]> wrote: > >=20 > > for f in `seq 1 500`; do > > while ! wget -nc "http://url/download.php?ID=3D$f&l=3D5"; do sleep 1; > > do= > > ne > > > done > >=20 > > am introdus un "sleep 1" intre incercarile de download nereusite pt. a > > scadea un posibil overhead... > >=20 > > de asemena "-nc" =3D no-clobber =3D> sa ti-l rescrie fisierul cu acelasi > > nume, ca sa nu te trezesti cu zjedemii de fisiere in cazurile de > > nereusite... ( numai sa fii sigur ca numele va fi diferit in functie de > > $f ! ) > > seq 1 500 | while read i ; do sleep 1; wget > "http://url/download.php?ID=3D${i}&l=3D5" -O porn/gallery/${i}.jpg ; done > > while - ca sa poti avea argument list oricat de lung
In cazul asta nu conteaza lista de argumente pentru ca este parsata intern de bash, e.g. for i in `seq 30000`; do rm $i; done - functioneaza [ineficient, dar] OK rm `seq 30000` - nu functioneaza, lista de argumente e prea lunga wget -nc nu rescrie fisierul cu acelasi nume ci nu-l mai ia deloc daca exista deja o copie locala. Partea proasta e ca daca prima tentativa de a lua fisierul a esuat, specificarea parametrului --no-clobber va duce la ignorarea noilor request-uri de a rescrie fisierul (adica de a corecta eroarea). > wget -O ca sa salvezi cu ce nume vrei > ai putea sa te uiti ce face `seq -w` , poate-ti trebuie In general 'seq -w' ar fi printre putinele utilizari recomandate a lui seq, restul facilitatilor putand fi obtinute mai eficient direct in bash (vezi "for ((..))" vs. "for i in `seq ...`". Mihai --- Detalii despre listele noastre de mail: http://www.lug.ro/
