11.04.2013 Views

Guida avanzata di scripting Bash - Portale Posta DMI

Guida avanzata di scripting Bash - Portale Posta DMI

Guida avanzata di scripting Bash - Portale Posta DMI

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Esempio 11-22. Effetti <strong>di</strong> exec<br />

#!/bin/bash<br />

Capitolo 11. Coman<strong>di</strong> interni e builtin<br />

exec echo "Uscita da \"$0\"." # Esce dallo script in questo punto.<br />

# --------------------------------------------<br />

# Le righe seguenti non verranno mai eseguite.<br />

echo "Questo messaggio non verrà mai visualizzato."<br />

exit 99 # Questo script non termina qui.<br />

# Verificate l’exit status, dopo che lo script è<br />

#+ terminato, con ’echo $?’.<br />

# *Non* sarà 99.<br />

Esempio 11-23. Uno script che esegue se stesso con exec<br />

#!/bin/bash<br />

# self-exec.sh<br />

echo<br />

echo "Sebbene questa riga compaia UNA SOLA VOLTA nello script, continuerà"<br />

echo "ad essere visualizzata."<br />

echo "Il PID <strong>di</strong> questo script d’esempio è ancora $$."<br />

# Dimostra che non viene generata una subshell.<br />

echo "==================== Premi Ctl-C per uscire ===================="<br />

sleep 1<br />

exec $0 # Inizia un’altra istanza <strong>di</strong> questo stesso script<br />

#+ che sostituisce quella precedente.<br />

echo "Questa riga non verrà mai visualizzata" # Perché?<br />

exit 0<br />

exec serve anche per riassegnare i descrittori dei file. Per esempio, exec

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!