Programmazione BASH

Bash Codice di uscita dell'ultimo comando

Bash Codice di uscita dell'ultimo comando
Quando viene eseguito un comando bash, lascia il codice di uscita, indipendentemente dall'esecuzione riuscita o meno successful. L'esame del codice di uscita può offrire informazioni utili sul comportamento del comando dell'ultima esecuzione.

In questa guida, scopri come controllare il codice di uscita di bash dell'ultimo comando e alcuni possibili utilizzi di esso.

Codice di uscita di Bash

Ogni comando UNIX/Linux eseguito dallo script di shell o dall'utente lascia uno stato di uscita. È un numero intero che rimane invariato a meno che non venga eseguito il comando successivo. Se il codice di uscita è 0, il comando ha avuto successo. Se il codice di uscita è diverso da zero (1-255), significa un errore.

Ci sono molti potenziali usi del codice di uscita bash. Il più ovvio è, ovviamente, verificare se l'ultimo comando viene eseguito correttamente, soprattutto se il comando non genera alcun output.

Nel caso di bash, il codice di uscita del comando precedente è accessibile utilizzando la variabile di shell “$?".

Controllo del codice di uscita di Bash

Avvia un terminale ed esegui qualsiasi comando.

$ data

Controlla il valore della variabile shell “$?” per il codice di uscita.

$ eco $?

Poiché il comando "date" è stato eseguito correttamente, il codice di uscita è 0. Cosa accadrebbe se ci fosse un errore?

Proviamo a eseguire un comando che non esiste.

$ abcd

Controlla il codice di uscita.

$ eco $?

È un valore diverso da zero, che indica che il comando precedente non è stato eseguito correttamente.

Ora, dai un'occhiata al seguente comando:

$ campione di gatto.txt | grep “moneta”

Quando si lavora con un comando che ha una o più pipe, il codice di uscita sarà l'ultimo codice eseguito nella pipe. In questo caso, è il comando grep.

Poiché il comando grep ha avuto successo, sarà 0.

$ eco $?

In questo esempio, se il comando grep fallisce, il codice di uscita sarà diverso da zero.

$ campione di gatto.txt | grep “abcd”
$ eco $?

Incorporare il codice di uscita negli script

Il codice di uscita può essere utilizzato anche per lo scripting. Un modo semplice per usarlo è assegnarlo a una variabile di shell e lavorarci sopra. Ecco uno script di shell di esempio che utilizza il codice di uscita come condizione per stampare un output specifico.

$ #!/bin/bash
$ echo "ciao mondo"
$ stato=$?
$ [ $status -eq 0 ] && echo "comando riuscito" || echo "comando non riuscito"

Quando viene eseguito, lo script genererà il seguente output.

Ora, vediamo cosa succede quando c'è un comando non valido da eseguire.

$ #!/bin/bash
$ comando-casuale
$ stato=$?
$ [ $status -eq 0 ] && echo "comando riuscito" || echo "comando non riuscito"

Quando viene eseguito, l'output sarà diverso.

Codice di uscita Valore Spiegazione

Quando il codice di uscita è diverso da zero, il valore varia da 1 a 255. Ora, cosa significa questo valore??

Sebbene il valore sia limitato, la spiegazione di ciascun valore è unica per il programma/script. Ad esempio, "ls" e "grep" hanno spiegazioni diverse per il codice di errore 1 e 2.

$ uomo ls

$ man grep

Definizione dello stato di uscita nello script

Quando scriviamo uno script, possiamo definire valori del codice di uscita personalizzati. È un metodo utile per un debug più semplice. Negli script bash, è il comando "exit" seguito dal valore del codice di uscita.

$ uscita

Per convenzione, si consiglia di assegnare il codice di uscita 0 per l'esecuzione corretta e utilizzare il resto (1-255) per possibili errori. Quando si raggiunge il comando exit, l'esecuzione dello script della shell verrà terminata, quindi fai attenzione al suo posizionamento.

Dai un'occhiata al seguente script di shell. Qui, se la condizione è soddisfatta, lo script terminerà con il codice di uscita 0. Se la condizione non è soddisfatta, il codice di uscita sarà 1.

$ #!/bin/bash
$ if [[ "$(whoami)" != radice ]]; poi
$ echo "Utente non root."
$ uscita 1
$ fi
$ echo "utente root"
$ uscita 0

Verifica il risultato dell'esecuzione di questo script senza privilegio sudo o utente "root".

$ ./campione.sh
$ eco $?

Pensieri finali

Questa guida mostra cosa sono i codici di uscita e come puoi usarli. Dimostra anche come assegnare codici di uscita appropriati in uno script bash.

Interessato allo scripting bash? Uno dei modi più semplici per iniziare è scrivere i tuoi script. Dai un'occhiata a questa semplice guida su come scrivere un semplice script bash.

Buon calcolo!

Come modificare le impostazioni del mouse e del touchpad utilizzando Xinput in Linux
La maggior parte delle distribuzioni Linux viene fornita con la libreria "libinput" per impostazione predefinita per gestire gli eventi di input su un...
Rimappa i pulsanti del mouse in modo diverso per software diversi con X-Mouse Button Control
Forse hai bisogno di uno strumento che possa cambiare il controllo del tuo mouse con ogni applicazione che utilizzi. In questo caso, puoi provare un'a...
Recensione del mouse wireless Microsoft Sculpt Touch
Ho letto di recente del Microsoft Scolpisci il tocco mouse wireless e ho deciso di acquistarlo. Dopo averlo usato per un po', ho deciso di condividere...