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/


Raspunde prin e-mail lui