Exit Command in Linux

Exit Command in Linux
In Linux, il comando di uscita viene utilizzato per terminare la shell (la sessione di accesso corrente) in cui viene eseguita. Inoltre, simile a un programma C, il comando di uscita viene utilizzato negli script di shell per terminare lo script. Inoltre, restituisce un valore al processo principale dello script.

Cosa copriremo?

In questa guida, vedremo una panoramica del comando di uscita in Linux con alcuni casi d'uso.

Il comando di uscita e lo stato di uscita

È inoltre possibile utilizzare il comando di uscita per specificare lo stato di uscita della shell. Lo stato di uscita è un valore numerico che viene restituito al processo genitore quando la shell termina.

Lo stato di uscita può essere utilizzato per indicare il successo o il fallimento del comando. Ad esempio, uno script di shell potrebbe utilizzare lo stato di uscita per determinare se eseguire determinate azioni in base al successo o al fallimento di un comando.

Per specificare lo stato di uscita, è possibile utilizzare il comando di uscita seguito da un numero. Ad esempio, l'uscita 0 indica un'uscita riuscita, mentre l'uscita 1 indica un fallimento.

Il comando di uscita accetta un singolo argomento opzionale che diventa lo stato di uscita dello script.

Quando non viene superato alcun argomento, lo stato di uscita è inadempiente allo stato di uscita dell'ultimo comando che viene eseguito. Per vedere lo stato di uscita, usa l'eco "$?" comando.

Esempi di codici di uscita (stato di uscita)

Il comando di uscita è fondamentale per indicare che si è verificato un grave errore poiché i processi di chiamata in genere considerano i codici di uscita diversi da zero come casi di errore. Se hai bisogno di una trappola di errore generale negli script, prova a utilizzare lo snippet del codice di uscita.

Vediamo alcuni esempi di utilizzo del codice di uscita in uno script e su un terminale:

Esempio 1: usando il comando di uscita con espressione del file

Facciamo prima un esempio di sceneggiatura:

#!/Bin/Bash
# Test-File: valuta lo stato di un file
File =/proc/uptime
if [-e "$ file"]; Quindi # Controlla l'esistenza del file.
if [-f "$ file"]; Quindi # Controlla se si tratta di un file normale.
echo "$ file è un file normale."
fi
if [-b "$ file"]; quindi # controlla se si tratta di un file di blocco
Echo "$ file è un dispositivo a blocchi"
fi
altro
echo "$ file non è né un file regolare né un blocco o non può esistere"
Uscita 1
fi
Uscita

Lo script esegue una valutazione sul file allocato alla costante "FILE" e produce i risultati mentre funziona.

Innanzitutto, controlla se si tratta di un file normale o di un file di blocco. Se la condizione non è soddisfatta, stampa il messaggio nel blocco altro.

Il primo comando di uscita imposta lo stato di uscita dello script in caso di errore (valore di uscita come 1). Il secondo comando di uscita è un'espressione formale. Ciò significa che quando lo script completa la sua esecuzione fino alla fine, ha lo stato di uscita dell'ultimo comando che, in questo caso, è il comando di uscita. Quest'ultimo comando di uscita comporterà il successo (valore di uscita come 0):

Esempio 2: usando comandi True e False con il comando di uscita

Inoltre, immettere un semplice argomento vero o falso fa sì che il terminale smetta con il codice di stato 0 e mostra 0 come vero. Se invece forniamo un'istruzione falsa, lo stato di uscita sarà 1 poiché le false uscite con il codice 1. Vediamo questo in modo pratico. Innanzitutto, emette il vero comando e controlla lo stato di uscita:

$ vero
$ echo $?

Ora, emetti il ​​falso comando e controlla di nuovo lo stato di uscita:

$ false
$ echo $?

Esempio 3: interrompere uno script con Ctrl+C

Quando un utente colpisce Control-C, viene inviato un segnale speciale noto come Sigint. Ciò interrompe lo script o il programma in esecuzione, causando l'uscita con il codice 130. Facciamo un esempio: supponiamo che tu abbia iniziato a cercare un file con il comando Trova:

$ find / -empty

La ricerca è ancora in corso. Quindi, l'hai improvvisamente interrotto con "Ctrl+C". Questo fa fermare il comando con il codice di uscita 130.

Esempio 4: la variabile della shell Shlvl e il comando di uscita

Con la variabile specifica per shell, shlvl, puoi vedere quanti livelli in profondità nella conchiglia bash sei. Ogni nuova sessione di shell aperta in un terminale aumenta il conteggio della sessione, a partire da 1 per la sessione iniziale. Se Shlvl è> 1, il comando di uscita chiude la sessione corrente. Allo stesso modo, se il Shlvl è = 1, il comando di uscita ti registra fuori dal sistema.

Per metterlo semplicemente, quando si digita "Esci" nel prompt dei comandi e premi Invio, la shell si chiude (chiudi la sessione di accesso corrente) e verrai restituito al prompt della shell o dei comandi da cui l'hai lanciata.

Conclusione

Abbiamo visto i diversi casi d'uso del comando di uscita e l'interpretazione dello stato di uscita in ciascun caso. Esistono molti numeri di codice di uscita diversi per scopi diversi. Si noti che questi codici di uscita sono specifici per bash. Se tendi a usare altri gusci come C-shell O Tcsh, I risultati possono differire.