Bash scripting: differenze tra le versioni

Nessun cambiamento nella dimensione ,  6 lug 2014
m
nessun oggetto della modifica
mNessun oggetto della modifica
Riga 425: Riga 425:


; <code>( ... )</code> : esegue il blocco di comandi in una subshell (le variabili vengono ripristinate al loro valore precedente, alla fine del blocco).
; <code>( ... )</code> : esegue il blocco di comandi in una subshell (le variabili vengono ripristinate al loro valore precedente, alla fine del blocco).
===Catturare l'exit status===
Per catturare lo stato d'uscita di un comando appena eseguito è sufficiente espandere la variabile speciale <code>$?</code>, come già visto. Tuttavia in caso di fallimento del comando, il controllo effettuato via <code>$?</code> avverrebbe soltanto '''dopo''' un blocco con errore (si veda la parte sul debug).
Per evitare che un blocco abbia un exit status diverso da zero, si possono usare le concatenazioni <code>&&</code> e <code>||</code> (oppure un <code>if</code>):
<pre>
comando &&
status=0 || # se corretto
status=$?  # se sbagliato
</pre>


==Redirezione==
==Redirezione==
Riga 444: Riga 454:
# filtra le occorrenze di video
# filtra le occorrenze di video
dmesg | grep -i video
dmesg | grep -i video
</pre>
===Catturare l'exit status===
Per catturare lo stato d'uscita di un comando appena eseguito è sufficiente espandere la variabile speciale <code>$?</code>, come già visto. Tuttavia in caso di fallimento del comando, il controllo effettuato via <code>$?</code> avverrebbe soltanto '''dopo''' un blocco con errore (si veda la parte sul debug).
Per evitare che un blocco abbia un exit status diverso da zero, si possono usare le concatenazioni <code>&&</code> e <code>||</code> (oppure un <code>if</code>):
<pre>
comando &&
status=0 || # se corretto
status=$?  # se sbagliato
</pre>
</pre>


3 581

contributi