Réponses:
Vous obtenez 0 ou 1. Dans le code de sortie.
bash-4.2$ test 4 -lt 6
bash-4.2$ echo $?
0
bash-4.2$ test 4 -gt 6
bash-4.2$ echo $?
1
Mise à jour : pour stocker le code de sortie pour une utilisation ultérieure, affectez-le simplement à une variable:
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
$?
variable - au moins jusqu'à ce qu'il soit remplacé par la prochaine commande que vous exécutez.
$PIPESTATUS
tableau pour obtenir le résultat de plusieurs commandes dans un pipeline. $?
sera par conséquent le résultat de la dernière commande du pipeline si l' pipefail
option est désactivée (par défaut).
if test 4 -lt 6; then echo test succeeeded; else echo test failed; fi
Si vous voulez le résultat d'une comparaison sur la sortie standard au lieu d'un code de sortie, vous pouvez utiliser la expr(1)
commande:
$ expr 4 '<=' 6
1
Deux choses à noter:
test
. test
renvoie 0 pour vrai (qui est la norme pour les codes de sortie), mais expr
imprime 1 pour vrai.test
shell intégré, qui est considérablement plus rapide (environ 50 fois sur ma machine) que les exécutables test
et expr
du package coreutils .