Respuestas:
Obtienes 0 o 1. En el código de salida.
bash-4.2$ test 4 -lt 6
bash-4.2$ echo $?
0
bash-4.2$ test 4 -gt 6
bash-4.2$ echo $?
1
Actualización : para almacenar el código de salida para su uso posterior, simplemente asígnelo a una 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, al menos hasta que se sobrescribe con el siguiente comando que ejecute.
$PIPESTATUS
matriz para obtener el resultado de varios comandos en una tubería. $?
será el resultado del último comando en la tubería si la pipefail
opción está desactivada (el valor predeterminado).
if test 4 -lt 6; then echo test succeeeded; else echo test failed; fi
Si desea el resultado de una comparación de salida estándar en lugar de un código de salida, puede usar el expr(1)
comando:
$ expr 4 '<=' 6
1
Dos cosas a tener en cuenta:
test
. test
devuelve 0 para verdadero (que es el estándar para los códigos de salida), pero expr
imprime 1 para verdadero.test
orden interna del shell, que es considerablemente más rápido (alrededor de 50 veces en mi máquina) que el test
y expr
los ejecutables de la coreutils paquete.