GNU/Linux >> Linux Esercitazione >  >> Linux

Esercitazione sullo stato di uscita di Bash Shell con esempi pratici

Nel nostro articolo introduttivo a bash, abbiamo appreso che un file di script di shell contiene un elenco di comandi che devono essere eseguiti dall'interprete di shell. In questo articolo esaminiamo i comandi della shell e i suoi interni.

Un comando è una sequenza di parole. La prima parola indica il comando da eseguire e le parole rimanenti vengono passate come argomenti, dove gli argomenti potrebbero essere le opzioni o i parametri del comando.

Alcuni dei comandi Unix comuni che esegui alla riga di comando sono comandi di shell. Ad esempio, comando ls, lpr e grep.

$ ls -alF

$ lpr filename

$ grep "string" filename

Stato uscita comando shell

Il valore di ritorno di un comando è il suo stato di uscita, oppure 128 + N se il comando è terminato dal segnale N. Lo stato di uscita serve per verificare il risultato (buon fine/fallimento) dell'esecuzione del comando. Se lo stato di uscita è zero, il comando ha esito positivo. Se il comando non riesce, lo stato di uscita sarà diverso da zero.

Valore di uscita Stato di uscita
0 (Zero) Successo
Diverso da zero Fallimento
2 Uso errato
127 Comando non trovato
126 Non è un eseguibile

$? Variabile shell

Il nome della variabile della shell $? è una speciale variabile incorporata che ha lo stato di uscita dell'ultimo comando eseguito.

  • Dopo l'esecuzione della funzione di shell, $? restituisce lo stato di uscita dell'ultimo comando eseguito in una funzione.
  • Dopo l'esecuzione dello script di shell, $? restituisce lo stato di uscita dell'ultimo comando eseguito nello script.

Script di esempio della shell che spiega lo stato di uscita del comando della shell

Il seguente script di shell exitstatus.sh mostra esempi di vari stati di uscita dei comandi di shell.

$ cat exitstatus.sh
#! /bin/bash

echo -e "Successful execution"
echo -e "====================="
echo "hello world"
# Exit status returns 0, because the above command is a success.
echo "Exit status" $? 

echo -e "Incorrect usage"
echo -e "====================="
ls --option
# Incorrect usage, so exit status will be 2.
echo "Exit status" $? 

echo -e "Command Not found"
echo -e "====================="
bashscript
# Exit status returns 127, because bashscript command not found
echo "Exit status" $? 

echo -e "Command is not an executable"
echo -e "============================="
ls -l execution.sh
./execution.sh
# Exit status returns 126, because its not an executable.
echo "Exit status" $?

Ora, esegui exitstatus.sh sopra per vedere le varie statue di uscita fornite dallo script di shell di esempio.

$ bash exitstatus.sh
Successful execution
=====================
hello world
Exit status 0
Incorrect usage
=====================
ls: unrecognized option `--option'
Try `ls --help' for more information.
Exit status 2
Command Not found
=====================
exitstaus.sh: line 15: bashscript: command not found
Exit status 127
Command is not an executable
=============================
-rw-r--r-- 1 root root 659 Mar  9 13:36 execution.sh
exitstatus.sh: line 21: ./execution.sh: Permission denied
Exit status 126

Nota:il controllo del valore di ritorno di una funzione o di un comando è una delle principali responsabilità di un programmatore. Questa dovrebbe diventare la tua seconda natura durante la scrittura di codice.


Linux
  1. Il tutorial Ultimate Bash Array con 15 esempi

  2. 15 utili comandi integrati di Bash Shell (con esempi)

  3. Comando Linux rsync con esempi pratici

  4. Comando Eco con esempi pratici

  5. '&&' vs. '&' con il comando 'test' in Bash

Scripting Bash – Spiegazione del comando Printf con esempi

Wait Command in Linux spiegato con esempi pratici

Tutorial comando trova Linux (con esempi)

Bash Scripting Introduzione Tutorial con 5 esempi pratici

The Ultimate Tar Command Tutorial con 10 esempi pratici

Tutorial sulle funzioni di Bash Shell con 6 esempi pratici