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.