Precedente: Istruzione nextfile, Su: Istruzioni [Contenuti][Indice]
exit
L’istruzione exit
fa sì che awk
termini immediatamente
l’esecuzione della regola corrente e che termini di elaborare l’input;
qualsiasi input ancora da elaborare è ignorato. L’istruzione exit
è
scritta come segue:
exit
[codice di ritorno]
Quando un’istruzione exit
è eseguita all’interno di una regola BEGIN
,
il programma termina completamente l’elaborazione. Nessun record in input
viene letto. Tuttavia, se una regola END
è presente, come parte
dell’esecuzione dell’istruzione exit
,
la regola END
viene eseguita
(vedi la sezione I criteri di ricerca speciali BEGIN
ed END
).
Se exit
è usata nel corpo di una regola END
,
il programma termina immediatamente.
Un’istruzione exit
che non fa parte di una regola BEGIN
o END
termina l’esecuzione di qualsiasi ulteriore regola applicabile al record
corrente, salta la lettura di qualsiasi record in input, ed esegue
le eventuali regole END
. gawk
salta anche le eventuali regole
ENDFILE
, che non vengono eseguite.
In questo caso,
se non si desidera che la regola END
venga eseguita, si deve impostare
una variabile a un valore diverso da zero, prima di invocare l’istruzione
exit
e controllarne il valore nella regola END
.
Vedi la sezione Asserzioni
per un esempio di questo tipo.
Se si specifica un argomento all’istruzione exit
, il suo valore è
usato come codice di ritorno finale dell’elaborazione awk
. Se non
viene specificato alcun argomento,
exit
fa terminare awk
con un codice di ritorno di
“successo”.
Nel caso in cui un argomento
sia specificato in una prima istruzione exit
e poi exit
sia
chiamato una seconda volta all’interno di una regola END
senza alcun
argomento, awk
usa il codice di ritorno specificato in precedenza.
(a.b.)
Vedi la sezione Il codice di ritorno all’uscita da gawk
per maggiori informazioni.
Per esempio, si supponga che si sia verificata una condizione di errore
difficile o impossibile da gestire. Convenzionalmente, i programmi la
segnalano terminando con un codice di ritorno diverso da zero. Un programma
awk
può farlo usando un’istruzione exit
con un argomento
diverso da zero, come mostrato nell’esempio seguente:
BEGIN { if (("date" | getline data_corrente) <= 0) { print "Non riesco a ottenere la data dal sistema" > "/dev/stderr" exit 1 }
print "la data corrente è", data_corrente close("date") }
NOTA: Per una completa portabilità, i codici di ritorno dovrebbero essere compresi tra zero e 126, estremi compresi. Valori negativi e valori maggiori o uguali a 127, possono non generare risultati coerenti tra loro in sistemi operativi diversi.
Precedente: Istruzione nextfile, Su: Istruzioni [Contenuti][Indice]