Bash uscita su errore

Bash uscita su errore
Un codice di stato di uscita viene restituito quando qualsiasi comando Linux viene eseguito dal terminale, il comando ha esito positivo o senza successo. Questo codice di stato può essere utilizzato per mostrare il messaggio di errore per l'esecuzione non riuscita o eseguire qualsiasi attività particolare utilizzando lo script shell. Il codice di stato di uscita rappresenta sempre per un numero. Il valore di questo codice è 0 per la riuscita esecuzione di qualsiasi comando Linux e restituisce qualsiasi numero da 1 a 255 per l'esecuzione senza successo del comando. Come il codice di stato esistente può essere utilizzato dal terminale e nello script bash è mostrato in questo tutorial.

Alcuni codici di stato di errore comuni sono menzionati di seguito.

Codice Descrizione Commenti
0 Indica un'esecuzione riuscita.
1 È usato per catturare tutti gli errori generali. "Dividi per zero", "operazione non consentita" ecc. Può essere i messaggi di errore di questo codice.
2 Indica l'abuso di Shell Built-in. "Parola chiave mancante", "Nessun file o directory" ecc. Può essere i messaggi di errore di questo codice.
126 Genera quando qualsiasi comando non è in grado di eseguire. Problema di autorizzazione o chiave richiesta non disponibile può generare questo codice di stato
127 Normalmente genera per il problema del percorso di comando. "Comando non trovato" può essere il messaggio per questo codice di errore.
130 Genera per un errore fatale. "Lo script terminato da Ctrl+C" può essere il messaggio di questo codice.
255* Indica il codice di uscita fuori porta.

Esempio-1: lettura del codice di uscita dal terminale

'$?'La variabile shell può essere utilizzata per visualizzare il codice di uscita di qualsiasi comando. 'LS -la' è un comando valido e mostra l'elenco di file e cartelle della directory di lavoro corrente. Il valore di '$?sarà 0 dopo aver eseguito il comando "ls -la". 'ls -xyz' è un comando non valido e '$?'restituirà 2 come codice di errore dopo aver eseguito il comando.

$ ls -la
$ echo $?
$ ls -xyz
$ echo $?

Esempio-2: lettura del codice di uscita nello script bash

Crea un file bash denominato read_file.sh Con il seguente script. In questo script, il nome del file verrà preso come input dell'utente e, il numero totale di righe, parole e caratteri di quel file verrà conteggiato usando il comando "WC". Se il nome del file è valido, il valore di $ status_code è 0 e se il nome del file non è valido, allora il valore di $ status_code è 1.

read_file.sh

#!/Bin/Bash
Echo "Inserisci il nome file"
Leggi il nome file
wc -lwc $ nome file
status_code = $?
Echo "L'uscita del comando 'wc' è: $ status_code"

Esempio-3: utilizzando il valore del codice di uscita per fare un'attività specifica

Crea un file bash denominato read_month.sh con il seguente codice. Qui, un valore della data verrà preso come input. Il nome del mese recupererà dal valore della data se la data di input è valida altrimenti verrà visualizzato il messaggio di errore della "data non valida". La condizione "se" viene utilizzata nello script per verificare il codice di stato di uscita del comando della data. Se la condizione è vera, il messaggio di successo e il nome del mese della data verranno stampati. Se la condizione è falsa, il codice di stato di errore ed uscita, 1 verrà stampata.

read_month.sh

#!/Bin/Bash
Echo "Immettere una data nel formato: YYYY-MM-DD"
Leggi date_value
current_month = $ (data -d "$ date_value" '+%b')
Se [$? -EQ 0]
Poi
comando echo "Data viene eseguito correttamente"
Echo "Il mese corrente è $ current_month"
altro
comando echo "Data non viene eseguito correttamente"
Uscita 1
fi

Esegui lo script.

$ bash read_month.sh

Esempio-4: usando && e || con codice di uscita

L'operatore logico '&&' viene utilizzato per il codice di uscita con successo e '||' L'operatore logico viene utilizzato per il codice di uscita senza successo. Il seguente comando stamperà "il file esiste" se libro.TXT Il file esiste nella posizione corrente e stampare 'il file non esiste' se libro.TXT Il file non esiste nella posizione corrente.

$ Cat Book.txt && echo "file esiste" || Echo "File non esiste"

Conclusione:

In questo tutorial sono mostrati diversi usi del codice di stato di uscita. Speranza, il lettore riceverà un concetto chiaro sul codice di stato di uscita di Bash dopo aver letto questo tutorial.