Comando test do Linux
Nos sistemas operacionais do tipo Unix, o comando test verifica os tipos de arquivo e compara valores.
Este documento aborda a versão GNU / Linux de teste .
GorjetaPara obter informações sobre o comando test no bash, consulte nossa página de comando bash test .
Descrição
test é usado como parte da execução condicional de comandos do shell .
o teste termina com o status determinado por EXPRESSION. Colocar a EXPRESSION entre colchetes ( [ e ] ) é o mesmo que testar a EXPRESSION com teste . Para ver o status de saída no prompt de comando, ecoe o valor ” $? ” Um valor 0 significa a expressão avaliada como verdadeira e um valor 1 significa a expressão avaliada como falsa.
Sintaxe
teste EXPRESSÃO
[ EXPRESSÃO ]
Expressões
As expressões assumem as seguintes formas:
( EXPRESSÃO ) | EXPRESSÃO é verdadeira |
! EXPRESSÃO | EXPRESSION é falso |
EXPRESSÃO1 -a EXPRESSÃO2 | tanto EXPRESSÃO1 e EXPRESSÃO2 são verdadeiras |
EXPRESSÃO1 -o EXPRESSÃO2 | quer EXPRESSÃO1 ou EXPRESSÃO2 é verdade |
-n STRING | o comprimento de STRING é diferente de zero |
CORDA | equivalente a -n STRING |
-z STRING | o comprimento de STRING é zero |
STRING1 = STRING2 | as cordas são iguais |
STRING1 ! = STRING2 | as cordas não são iguais |
INTEGER1 -eq INTEGER2 | INTEGER1 é igual a INTEGER2 |
INTEGER1 -ge INTEGER2 | INTEGER1 é maior ou igual a INTEGER2 |
INTEGER1 -gt INTEGER2 | INTEGER1 é maior que INTEGER2 |
INTEGER1 -le INTEGER2 | INTEGER1 é menor ou igual a INTEGER2 |
INTEIRO1 -É INTEIRO2 | INTEGER1 é menor que INTEGER2 |
INTEGER1 -ne INTEGER2 | INTEGER1 não é igual a INTEGER2 |
FILE1 -ef FILE2 | FILE1 e FILE2 têm os mesmos números de dispositivo e inode |
FILE1 -nt FILE2 | FILE1 é mais recente (data de modificação) que FILE2 |
FILE1 -ot FILE2 | FILE1 é mais antigo que FILE2 |
-b ARQUIVO | FILE existe e é bloco especial |
-c ARQUIVO | ARQUIVO existe e é caractere especial |
-d ARQUIVO | FILE existe e é um diretório |
-e ARQUIVO | FILE existe |
-f ARQUIVO | FILE existe e é um arquivo regular |
-g ARQUIVO | FILE existe e é definido como ID do grupo |
-G ARQUIVO | FILE existe e pertence ao ID do grupo efetivo |
-h ARQUIVO | FILE existe e é um link simbólico (o mesmo que -L ) |
-k ARQUIVO | FILE existe e tem seu bit fixo definido |
-L ARQUIVO | FILE existe e é um link simbólico (o mesmo que -h ) |
-O ARQUIVO | FILE existe e pertence ao ID do usuário efetivo |
-p ARQUIVO | FILE existe e é um pipe nomeado |
-r ARQUIVO | FILE existe e a permissão de leitura é concedida |
-s ARQUIVO | FILE existe e tem um tamanho maior que zero |
-S ARQUIVO | FILE existe e é um soquete |
-t FD | O descritor de arquivo FD é aberto em um terminal |
-u ARQUIVO | FILE existe e seu bit set-user-ID está definido |
-w ARQUIVO | FILE existe e a permissão de gravação é concedida |
-x ARQUIVO | FILE existe e a permissão de execução (ou pesquisa) é concedida |
Exceto para -h e -L , todos os testes relacionados ao FIRE desreferem links simbólicos. Cuidado para que os parênteses precisem ser escapados (por exemplo, por barras invertidas) para as conchas. INTEGER também pode ser -l STRING , que avalia o comprimento de STRING .
NOTA: seu shell pode ter sua própria versão de teste , que geralmente substitui a versão descrita aqui. Por favor, consulte a documentação do seu shell para detalhes sobre as opções que ele suporta.
Exemplos
test 100 -gt 99 && echo "Sim, é verdade." || eco "Não, isso é falso."
Este comando imprimirá o texto ” Sim, isso é verdade ” porque 100 é maior que 99 .
teste 100 -lt 99 && eco "Sim". || eco "Não".
Este comando imprimirá o texto ” Não “, porque 100 não é menor que 99 .
["incrível" = "incrível"]; eco $?
Este comando imprimirá ” 0 ” porque a expressão é verdadeira; as duas cordas são idênticas.
[5-eq 6]; eco $?
Este comando imprimirá ” 1 ” porque a expressão é falsa; 5 não é igual a 6.