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.

Appen<strong>di</strong>ce D. Co<strong>di</strong>ci <strong>di</strong> Exit con significati<br />

speciali<br />

Tabella D-1. Co<strong>di</strong>ci <strong>di</strong> Exit “riservati”<br />

Numero <strong>di</strong> co<strong>di</strong>ce ExitSignificato Esempio Commenti<br />

1 In<strong>di</strong>ca errori generici let "var1 = 1/0" Errori vari, come<br />

“<strong>di</strong>visione per zero”<br />

2 Uso scorretto dei builtin<br />

<strong>di</strong> shell, secondo la<br />

documentazione <strong>Bash</strong><br />

126 Il comando invocato non<br />

può essere eseguito<br />

Si vede raramente,<br />

sostituito solitamente dal<br />

co<strong>di</strong>ce <strong>di</strong> exit 1<br />

Problemi <strong>di</strong> permessi o il<br />

comando non è un<br />

eseguibile<br />

127 “command not found” Possibili problemi con<br />

$PATH o errore <strong>di</strong><br />

<strong>di</strong>gitazione<br />

128 Argomento <strong>di</strong> exit non<br />

valido<br />

128+n Segnale <strong>di</strong> errore fatale<br />

“n”<br />

130 Script terminato con<br />

Control-C<br />

exit 3.14159 exit richiede come<br />

argomento solo un intero<br />

compreso nell’intervallo<br />

0 - 255 (ve<strong>di</strong> nota a piè <strong>di</strong><br />

pagina)<br />

kill -9 $PPID dello script $? restituisce 137 (128 +<br />

9)<br />

Control-C invia il segnale<br />

<strong>di</strong> errore fatale 2, (130 =<br />

128 + 2, ve<strong>di</strong> sopra)<br />

255* Exit status fuori intervalloexit -1 exit richiede come<br />

argomento solo un intero<br />

compreso nell’intervallo<br />

0 - 255<br />

Secondo la tabella, i co<strong>di</strong>ci <strong>di</strong> exit 1 - 2, 126 - 165 e 255 1 hanno significati speciali e, quin<strong>di</strong>, si dovrebbe<br />

evitare <strong>di</strong> usarli come parametri <strong>di</strong> exit definiti dall’utente. Terminare uno script con exit 127<br />

sicuramente provoca della confusione nella fase <strong>di</strong> risoluzione dei problemi (si tratta del co<strong>di</strong>ce d’errore<br />

<strong>di</strong> “command not found” oppure è uno definito dall’utente?). Comunque, molti script usano exit 1 come<br />

co<strong>di</strong>ce <strong>di</strong> uscita <strong>di</strong> errore generico. Dal momento che il co<strong>di</strong>ce <strong>di</strong> exit 1 può in<strong>di</strong>care molti <strong>di</strong>fferenti<br />

errori, questo potrebbe non essere utile nel debugging.<br />

Vi è stato un tentativo per sistematizzare i numeri degli exit status (ve<strong>di</strong> /usr/include/sysexits.h),<br />

ma questo fu fatto solo per i programmatori <strong>di</strong> C e C++. Uno standard simile sarebbe stato appropriato<br />

775

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

Saved successfully!

Ooh no, something went wrong!