Risposte:
Ottieni 0 o 1. Nel codice di uscita.
bash-4.2$ test 4 -lt 6
bash-4.2$ echo $?
0
bash-4.2$ test 4 -gt 6
bash-4.2$ echo $?
1
Aggiornamento : per memorizzare il codice di uscita per un uso successivo, assegnarlo a una variabile:
bash-4.2$ test 4 -lt 6
bash-4.2$ first=$?
bash-4.2$ test 4 -gt 6
bash-4.2$ second=$?
bash-4.2$ echo "first test gave $first and the second $second"
first test gave 0 and the second 1
$?
variabile, almeno fino a quando non viene sovrascritto dal comando successivo che si esegue.
$PIPESTATUS
array per ottenere il risultato di più comandi in una pipeline. $?
sarà il risultato dell'ultimo comando nella pipeline se l' pipefail
opzione è disattivata (impostazione predefinita).
if test 4 -lt 6; then echo test succeeeded; else echo test failed; fi
Se si desidera il risultato di un confronto su standard out anziché un codice di uscita, è possibile utilizzare il expr(1)
comando:
$ expr 4 '<=' 6
1
Due cose da notare:
test
. test
restituisce 0 per true (che è lo standard per i codici di uscita), ma expr
stampa 1 per true.test
built-in della shell, che è considerevolmente più veloce (circa 50 volte sulla mia macchina) rispetto agli eseguibili test
e expr
dal pacchetto coreutils .