Newsgroup: it.comp.os.linux.iniziare
Titolo: [Script] Attendere la fine di un comando....

Saluti a tutti.
Volendo scrivere uno script in cui inserire piu' comandi, come faccio a
dire al secondo comando di partire quando il primo ha terminato?
Ad esempio, voglio uno script che lanci lo script
che collega ad internet e quello che, una volta collegato, mi scarica la
posta. Finito di scaricare voglio un bel   killall pppd.
Non vi chiedo di farmi lo script, chiedo di dirmi come fare o dove
cercare. Ho letto qualche bash-programming-howto qualche tempo fa ma non
ricordo nulla di utile.
grazie in anticipo.
-- 
/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
Saluti,  <								 > 
  	 >		      << Linux Powered >>			 <
LIBRA    <     <><> e-mail: metti "libero" al posto di "NOSPAM" <><>	 >
/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\   

posta. Finito di scaricare voglio un bel   killall pppd.
if /sbin/ifup ppp1; then
/usr/bin/slrnpull && /sbin/ifdown ppp1
appena parte la connessione (ifup) lancia slrnpull
e quando ha finito chiude la connessione (ifdown)
puň andare anche  /sbin/ifup ppp1 && usr/bin/slrnpull && /sbin/ifdown ppp1
  (comando 1 && comando 2 =  se comando 1 termina senza errori
lancia comando 2)
-- 
CIAO
           *** abrate ***   

puň andare anche  /sbin/ifup ppp1 && usr/bin/slrnpull && /sbin/ifdown ppp1
				     ~~~~
				    /usr/bin/slrnpull
colpa della segretaria...:^)



Faccio prima a mettere lo script, e` quello che uso io.
Se eseguito senza parametri si collega, se sei in X apre un rxvt con il
log del kernel (x i msg del firewall), poi lancia fetchmail in modalita`
daemon, ed inizia un ciclo while per eseguire slrnpull ogni 60 secondi.
Il ciclo while tiene anche `vivo' lo script in modo che non termini
causando anche la disconnessione.
Per scollegarsi, killare lo script.
Da X conviene lanciarlo con `rxvt -e nomescript'. Si vedranno i messaggi
di slrnpull e fetchmail, e per chiudere la connessione basta chiudere
il suo rxvt.
Da console, si puo` dedicare una console allo script, e per chiudere
usare Ctrl-C in quella console.
Se eseguito col parametro `auto', si collega, scarica posta e news, e si
scollega.
\/\/\/\/\/inizio script\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/
#!/bin/sh
function connect {
    #segue il comando di connessione
    #con una `&' alla fine per mandare la connessione in background
    pppd -detach connect "/usr/sbin/chat -v -f /etc/ppp/pppscript" &
    #finche` la connessione non e` pronta, aspetta
    until
        ! [ "$(ifconfig | grep ppp0)" = "" ] 
    do
        sleep 5
    done
}
function fetch {
    fetchmail
    slrnpull
    #rifacciamolo dopo qualche secondo
    #per vedere i nostri msg appena postati
    sleep 7
    slrnpull
}
#questo traduce `nessun parametro' in `normal'
DO="$1"
if [ "$DO" = "" ]
then
    DO="normal"
fi
case "$DO" in
            auto)
		#eseguire la function connect
		#e continuare solo se questa ha successo (&&)
                connect &&
 
		#ora la connessione e` pronta...
                fetch
                killall pppd
                ;;
 	    normal)
                connect &&
 
		#fetchmail in modo daemon guarda la posta ogni 120 s
                fetchmail -d 120
		#se siamo in X, mostra il log del kernel in un rxvt
                if ! [ "$(env | grep DISPLAY)" = "" ]
                then
                    rxvt -e tail -f /var/log/kernel &
                fi
 
		#controlla le news ogni 60 s
		#finche` la connessione e` attiva
                while [ "$(ifconfig | grep ppp0)" != "" ]
                do
                    slrnpull
                    sleep 60s
                done
                ;;
            *)
                echo "Che hai detto???"
                echo "USAGE: online, online auto"
                ;;
esac
\/\/\/\/\/\/\/\fine script/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/
-- 
    Pardo 
 
www.pardo.cjb.net

lancia comando 2)
E' quello che pensavo ma io ho messo questo:
./libero  && fetchmail 
libero e' il mio script di connessione a internet.
Lo script si lamentava perche' tentava la connessione e allo stesso
tempo cercava di scaricare la posta, dicendomi che non ero collegato.
Deduco che funziona solo con i comandi e non se voglio aspettare la fine
di un altro script? vabbe', se cosi' fosse non ci sarebbereo problemi,
mi basta copiare lo script libero  nel nuovo script e.........ok grazie
;-)



Grazie,  mi e' stato molto utile.
-- 
/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
Saluti,  <								 > 
  	 >		      << Linux Powered >>			 <
LIBRA    <     <><> e-mail: metti "libero" al posto di "NOSPAM" <><>	 >
/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\