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.
$PIPESTATUSarray per ottenere il risultato di più comandi in una pipeline. $?sarà il risultato dell'ultimo comando nella pipeline se l' pipefailopzione è 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. testrestituisce 0 per true (che è lo standard per i codici di uscita), ma exprstampa 1 per true.testbuilt-in della shell, che è considerevolmente più veloce (circa 50 volte sulla mia macchina) rispetto agli eseguibili teste exprdal pacchetto coreutils .