Workstation online OnWorks Linux e Windows

Logo

Hosting online gratuito per workstation

<Precedenti | Contenuti | Succ.>

Stato di uscita

I comandi (inclusi gli script e le funzioni di shell che scriviamo) inviano un valore al sistema quando terminano, chiamato an stato di uscita. Questo valore, che è un numero intero compreso tra 0 e 255, indica l'esito positivo o negativo dell'esecuzione del comando. Per convenzione, un valore zero indica il successo e qualsiasi altro valore indica il fallimento. La shell fornisce un parametro che possiamo usare per esaminare lo stato di uscita. Qui lo vediamo in azione:



[io@linuxbox~]$ ls -d /usr/bin

/ Usr / bin

[io@linuxbox~]$ eco $?

0

[io@linuxbox~]$ ls -d /bin/usr

ls: impossibile accedere a /bin/usr: nessun file o directory simile [me@linuxbox ~]$ eco $?

2

[io@linuxbox~]$ ls -d /usr/bin

/ Usr / bin

[io@linuxbox~]$ eco $?

0

[io@linuxbox~]$ ls -d /bin/usr

ls: impossibile accedere a /bin/usr: nessun file o directory simile [me@linuxbox ~]$ eco $?

2

Stato di uscita


In questo esempio, eseguiamo il ls comando due volte. La prima volta, il comando viene eseguito correttamente. Se mostriamo il valore del parametro $?, vediamo che è zero. Eseguiamo il ls comandare una seconda volta (specificando una directory inesistente), producendo un errore, ed esaminare il parametro $? ancora. Questa volta contiene un 2, che indica che il comando ha riscontrato un errore. Alcuni comandi utilizzano valori di stato di uscita diversi per fornire la diagnostica degli errori, mentre molti comandi escono semplicemente con un valore di uno quando falliscono. Le pagine man spesso includono una sezione intitolata "Exit Status", che descrive quali codici vengono utilizzati. Tuttavia, uno zero indica sempre il successo.

La shell fornisce due comandi interni estremamente semplici che non fanno altro che terminare con uno stato di uscita zero o uno. Il vero comando viene sempre eseguito con successo e il falso il comando viene sempre eseguito senza successo:


[io@linuxbox~]$ vero [io@linuxbox~]$ eco $? 0

[io@linuxbox~]$ falso [io@linuxbox~]$ eco $? 1

[io@linuxbox~]$ vero [io@linuxbox~]$ eco $? 0

[io@linuxbox~]$ falso [io@linuxbox~]$ eco $? 1


Possiamo usare questi comandi per vedere come il if dichiarazione funziona. che cosa? if l'istruzione non fa davvero è valutare il successo o il fallimento dei comandi:



[io@linuxbox~]$ se è vero; then echo "È vero."; fi

È vero.

[io@linuxbox~]$ se falso; then echo "È vero."; fi

[io@linuxbox~]$

[io@linuxbox~]$ se è vero; then echo "È vero."; fi

È vero.

[io@linuxbox~]$ se falso; then echo "È vero."; fi

[io@linuxbox~]$


Il comando echo "È vero." viene eseguito quando il comando seguente if viene eseguito con successo e non viene eseguito quando il comando successivo if non viene eseguito correttamente. Se segue un elenco di comandi if, viene valutato l'ultimo comando nell'elenco:


[me@linuxbox ~]$ se falso; vero; then echo "È vero."; fi È vero.

[me@linuxbox ~]$ se vero; falso; then echo "È vero."; fi [me@linuxbox ~]$

[me@linuxbox ~]$ se falso; vero; then echo "È vero."; fi È vero.

[me@linuxbox ~]$ se vero; falso; then echo "È vero."; fi [me@linuxbox ~]$


Il miglior sistema operativo cloud computing su OnWorks: