Respostas:
Você recebe 0 ou 1. No código de saída.
bash-4.2$ test 4 -lt 6
bash-4.2$ echo $?
0
bash-4.2$ test 4 -gt 6
bash-4.2$ echo $?
1
Atualização : para armazenar o código de saída para uso posterior, basta atribuí-lo a uma variável:
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
$?
variável - pelo menos até que seja substituído pelo próximo comando que você executa.
$PIPESTATUS
matriz para obter o resultado de vários comandos em um pipeline. $?
será o resultado do último comando no pipeline se a pipefail
opção estiver desativada (o padrão).
if test 4 -lt 6; then echo test succeeeded; else echo test failed; fi
Se você deseja o resultado de uma comparação na saída padrão em vez de um código de saída, pode usar o expr(1)
comando:
$ expr 4 '<=' 6
1
Duas coisas a serem observadas:
test
. test
retorna 0 para true (que é o padrão para códigos de saída), mas expr
imprime 1 para true.test
shell embutido, que é consideravelmente mais rápido (cerca de 50 vezes na minha máquina) do que os executáveis test
e expr
do pacote coreutils .