Gestione degli errori di Bash

Gestione degli errori di Bash

La gestione degli errori è una parte molto importante di qualsiasi linguaggio di programmazione. Bash non ha un'opzione migliore di altri linguaggi di programmazione per gestire l'errore dello script. Ma è essenziale rendere lo script bash privo di errori al momento dell'esecuzione dello script dal terminale. La funzione di gestione degli errori può essere implementata per lo script bash in più modi. Le diverse tecniche per gestire gli errori nello script bash sono mostrate in questo tutorial.

Esempio 1: gestione degli errori utilizzando un'istruzione condizionale

Crea un file bash con il seguente script che mostra l'uso dell'istruzione condizionale per la gestione degli errori. La prima istruzione "if" viene utilizzata per verificare il numero totale di argomenti della riga di comando e stampare un messaggio di errore se il valore è inferiore a 2. Successivamente, i valori di dividendo e divisore sono prelevati dagli argomenti della riga di comando. Se il valore divisore è uguale a 0, viene generato un errore e il messaggio di errore viene stampato nell'errore.file txt. Il secondo comando "if" viene utilizzato per verificare se l'errore.Il file txt è vuoto o no. Un messaggio di errore viene stampato se l'errore.Il file txt non è vuoto.

#!/Bin/Bash
#Cuck i valori dell'argomento
if [$# -lt 2]; Poi
echo "manca uno o più argomenti."
Uscita
fi
#Redi il valore di dividendo dal primo argomento della riga di comando
dividendo = $ 1
#Read il valore divisore dal secondo argomento della riga di comando
divisore = $ 2
#Divide il dividendo da parte del divisore
risultato = 'echo "scala = 2; $ dividend/$ divisor" | bc 2> Errore.TXT'
#Leggi il contenuto del file di errore
content = 'Cat Errore.TXT'
if [-n "$ content"]; Poi
#Print il messaggio di errore se l'errore.txt non è vuoto
Echo "Divisibile per zero Errore si è verificato."
altro
#Print il risultato
echo "$ dividend/$ divisor = $ risultato"


Produzione:

Viene visualizzato il seguente output dopo aver eseguito lo script precedente senza alcun argomento:


Viene visualizzato il seguente output dopo aver eseguito lo script precedente con un valore di argomento:


Viene visualizzato il seguente output dopo l'esecuzione dello script precedente con due valori di argomento validi:


Il seguente output appare dopo aver eseguito lo script precedente con due valori di argomento in cui il secondo argomento è 0. Il messaggio di errore è stampato:

Esempio 2: gestione degli errori utilizzando il codice di stato di uscita

Crea un file bash con il seguente script che mostra l'uso della gestione degli errori di Bash mediante codice di stato di uscita. Qualsiasi comando bash viene preso come valore di input e quel comando viene eseguito in seguito. Se il codice di stato di uscita non è uguale a zero, viene stampato un messaggio di errore. Altrimenti, viene stampato un messaggio di successo.

#!/Bin/Bash
#Take un nome di comando Linux
echo -n "Immettere un comando:"
Leggi cmd_name
#Run il comando
$ cmd_name
#Check se il comando è valido o non valido
Se [$? -ne 0]; Poi
echo "$ cmd_name è un comando non valido."
altro
echo "$ cmd_name è un comando valido."
fi
fi


Produzione:

Il seguente output viene visualizzato dopo aver eseguito lo script precedente con il comando valido. Qui, la "data" è presa come comando nel valore di input valido:


Viene visualizzato il seguente output dopo aver eseguito lo script precedente per il comando non valido. Qui, il "CMD" è preso come comando nel valore di input non valido:

Esempio 3: arrestare l'esecuzione sul primo errore

Crea un file bash con il seguente script che mostra il metodo per arrestare l'esecuzione quando appare il primo errore dello script. Nel seguente script vengono utilizzati due comandi non validi. Quindi, vengono generati due errori. Lo script interrompe l'esecuzione dopo aver eseguito il primo comando non valido usando il comando "set -e".

#!/Bin/Bash
#Sept l'opzione per terminare lo script sul primo errore
Set -E
Echo "Data e ora corrente:"
Comando #valid
data
Echo "attuale directory di lavoro:"
#Comando non valido
CWD
Echo 'Login Nome utente:'
Comando #valid
chi sono
ECHO 'Elenco di file e cartelle: "
#Comando non valido
elenco


Produzione:

Viene visualizzato il seguente output dopo aver eseguito lo script precedente. Lo script interrompe l'esecuzione dopo aver eseguito il comando non valido che è "CWD":

Esempio 4: arrestare l'esecuzione per la variabile non iniziale

Crea un file bash con il seguente script che mostra il metodo per fermare l'esecuzione dello script per la variabile non iniziale. I valori del nome utente e della password sono prelevati dai valori dell'argomento della riga di comando. Se uno qualsiasi dei valori di queste variabili non viene inizializzato, viene stampato un messaggio di errore. Se entrambe le variabili sono inizializzate, lo script controlla se il nome utente e la password sono validi o non validi.

#!/Bin/Bash
#Sept l'opzione per terminare lo script per una variabile non iniziale
Set -u
#Sept il primo valore dell'argomento della riga di comando per il nome utente
nome utente = $ 1
#Sept il secondo valore dell'argomento della riga di comando alla password
password = $ 2
#Check Il nome utente e la password sono validi o non validi
if [[$ username == 'admin' && $ password == 'hidenseek']; Poi
echo "utente valido."
altro
Echo "Utente non valido."
fi


Produzione:

Viene visualizzato il seguente output se lo script viene eseguito senza utilizzare alcun valore dell'argomento della riga di comando. Lo script interrompe l'esecuzione dopo aver ottenuto la prima variabile non iniziativa:


Viene visualizzato il seguente output se lo script viene eseguito con un valore dell'argomento della riga di comando. Lo script interrompe l'esecuzione dopo aver ottenuto la seconda variabile non iniziativa:


Viene visualizzato il seguente output se lo script viene eseguito con due valori di argomenti di comando: "amministratore" e "nascondi". Qui, il nome utente è valido ma la password non è valida. Quindi, il messaggio "Utente non valido" è stampato:


Viene visualizzato il seguente output se lo script viene eseguito con due valori di argomenti di comando - "Admin" e "Hidenseek". Qui, il nome utente e la password sono validi. Quindi, il messaggio "utente valido" è stampato:

Conclusione

I diversi modi per gestire gli errori nello script bash sono mostrati in questo tutorial usando più esempi. Speriamo che ciò aiuti gli utenti Bash a implementare la funzione di gestione degli errori nel loro script bash.