PDA

Visualizza la versione completa : Curl & Shell - Sincroni


Lucada
13-08-2010, 17:49
Ciao a tutti, il mio problema il seguente.

Ho uno script (.sh) che richiama n spider che ho realizzato.
Lo script semplice ed cos composto:



#!/bin/bash

#Spider Italiani
curl http://www.sito.it/spider/sito_da_spiderare1/read.php
curl http://www.sito.it/spider/sito_da_spiderare2/read.php
curl http://www.sito.it/spider/sito_da_spiderare3/read.php
curl http://www.sito.it/spider/sito_da_spiderare4/read.php


Il problema che cos facendo mi trovo spesso 3-4 processi attivi che mi "schiantano" il server.

Quello che vorrei io che lo script (.sh) aspettasse la fine dell'attuale chiamata "curl" prima di procedere con la successiva e cos fino al completamento dello stesso.

In questa maniera avrei nei processi soltanto un processo "sh" e un singolo processo "read" lanciato appunto dallo script sh.

Possibili soluzioni?
Grazie.

sacarde
13-08-2010, 20:29
esempio...

io farei tanti file quanto sono i comandi
e li eseguirei con:

run-parts /dir-che-contiene-file

Lucada
13-08-2010, 21:30
Sinceramente l'idea non mi piace troppo perch rende a essere un po' dispersiva comunque grazie del consiglio.

Ovviamente si accettano ulteriori indicazioni.

sacarde
13-08-2010, 21:32
e se li mettessi sulla stessa riga?

usando \

oppure &&

Lucada
15-08-2010, 14:20
Umh... che succederebbe? Non conosco 'sto metodo. :dh:

sacarde
15-08-2010, 14:25
vedi il capitolo: 43.3 Lista di comandi

http://oldsite.to.infn.it/groups/group4/mirror/linux/AppuntiLinux/AL-3.10.43.html

Lucada
17-08-2010, 11:30
Originariamente inviato da sacarde
e se li mettessi sulla stessa riga?

usando \

oppure &&

Con l'operatore "&&" (AND) funziona grazie. ;)


43.3.2 Operatore di controllo &&

L'operatore di controllo && si comporta come l'operatore booleano AND: se il valore di uscita di ci che sta alla sinistra zero (Vero), viene eseguito anche quanto sta alla destra.

Dal punto di vista pratico, viene eseguito il secondo comando solo se il primo ha terminato il suo compito con successo.

Esempi
$ mkdir ./prova && echo "Creata la directory prova"

Viene eseguito il comando mkdir ./prova. Se ha successo viene eseguito il comando successivo che visualizza un messaggio di conferma.

Loading