Come verificare se un comando è riuscito a bash

Come verificare se un comando è riuscito a bash

Quando si scrive uno script o si esegue un comando, ha senso sapere se ci è successo. In Linux, quando viene eseguito un comando, otteniamo un codice di uscita che conferma se il comando eseguito ha avuto successo. Quando si esegue un comando che si basa sull'output dell'altro comando, è necessario recuperare il codice di uscita del primo comando per determinare se l'altro comando verrà eseguito. Questa guida si concentra su due modi per verificare se un comando è riuscito a bash.

Due modi per controllare se un comando è riuscito a bash

Quando si esegue un comando in bash, deve restituire un codice di uscita o uno stato. È possibile utilizzare l'istruzione "if" per valutare il valore restituito di un determinato comando o utilizzare la variabile speciale ($?) per controllare il codice di uscita o lo stato del comando eseguito. Entriamo nei dettagli.

1. Utilizzo dell'istruzione Bash If

Con l'istruzione "if", È possibile valutare il valore di ritorno di un comando che viene eseguito all'interno di un'espressione. L'istruzione "if" recupera lo stato di uscita. A seconda della tua espressione, esegue il comando consequenziale nell'istruzione condizionale IF-ELSE.

Ad esempio, possiamo creare uno script che elimina qualsiasi file di testo nella directory corrente e restituire un messaggio di successo se il comando esegue o un messaggio di errore se il comando non ha successo.

Rendi eseguibile lo script usando il comando chmod. Quindi, eseguilo.

Si noti che il nostro comando non ha successo, visualizzando così il messaggio non riuscito. Tuttavia, se il comando ha successo, otteniamo un output diverso.

È possibile utilizzare lo stesso concetto quando si esegue qualsiasi comando in bash in modo tale che se un determinato comando non ha successo, visualizza un dato output per confermare che il comando successivo non eseguirà poiché il primo comando non è già riuscito.

2. Utilizzando la variabile speciale ($?)

La variabile speciale ($?) Restituisce il codice di uscita dell'ultimo comando eseguito. Quando restituisce il codice di uscita come zero, implica che il comando è riuscito correttamente. Tuttavia, qualsiasi altro numero significa che il tuo comando non ha avuto successo.

Usando la variabile speciale per verificare se un comando è riuscito correttamente richiede di utilizzare un operatore di confronto binario (EQ) per vedere se il codice di uscita è zero. In caso contrario, esegue la parte altro dell'istruzione condizionale IF-ELSE.

Esegui il comando nel tuo script. Quindi, aggiungi un'istruzione condizionale If-Else per verificare se il comando è stato eseguito. Modifichiamo il nostro esempio precedente per utilizzare la variabile speciale come segue:

Se eseguiamo lo script, restituisce un output che conferma che non ha avuto successo poiché non ci sono file di testo da eliminare. Pertanto, esegue il comando nella parte altro anziché "if".

Supponiamo di avere file di testo nella directory corrente. Potremmo ottenere un output diverso. Qui, otteniamo il messaggio di successo, il che significa che il codice di uscita corrispondeva alla sezione "if" come è riuscito.

Nel caso precedente, il comando è riuscito. Possiamo verificarlo in base al messaggio di output che viene visualizzato, confermando che il codice di uscita per il comando è zero.

Conclusione

Esistono due modi comuni per verificare se il tuo comando è riuscito a bash. È possibile utilizzare l'istruzione IF-ELSE condizionale per visualizzare un output, a seconda che un comando sia riuscito. In alternativa, è possibile utilizzare la variabile speciale ($?) Per verificare il codice di uscita o lo stato del comando eseguito utilizzando l'istruzione IF-ELSE.