English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Comando test do Shell

O comando test no Shell é usado para verificar se uma condição é verdadeira, ele pode realizar testes numéricos, de caractere e de arquivo.

teste numérico

Parâmetro Descrição
-eq igual, então é verdadeiro
-ne diferente, então é verdadeiro
-gt maior, então é verdadeiro
-ge maior ou igual, então é verdadeiro
-lt menor, então é verdadeiro
-le menor ou igual, então é verdadeiro
num1=100
num2=100
if test $[num1] -eq $[num2]
then
    echo 'dois números são iguais!'
else
    echo 'dois números não são iguais!'
fi

Resultados de Saída:

dois números são iguais!

Os [] no código realizam operações aritméticas básicas, por exemplo:

#!/bin/bash
a=5
b=6
result=$[a+b] # Note que os espaços não podem estar ao redor do sinal de igual
echo "resultado é: $result"

o resultado é:

resultado é: 11

teste de string

Parâmetro Descrição
= igual, então é verdadeiro
!== diferente, então é verdadeiro
-string z A comprimento da string é zero, então é verdadeiro
-n String A comprimento da string não é zero, então é verdadeiro
num1="ru1noob"
num2="w3codebox"
if test $num1 = $num2
then
    echo 'Os dois strings são iguais!'
else
    echo 'Os dois strings não são iguais!'
fi

Resultados de Saída:

Os dois strings não são iguais!

Teste de Arquivo

Parâmetro Descrição
-e Nome do arquivo Se o arquivo existe, então é verdadeiro
-r Nome do arquivo Se o arquivo existe e é legível, então é verdadeiro
-w Nome do arquivo Se o arquivo existe e é gravável, então é verdadeiro
-x Nome do arquivo Se o arquivo existe e é executável, então é verdadeiro
-s Nome do arquivo Se o arquivo existe e pelo menos um caractere, então é verdadeiro
-d Nome do arquivo Se o arquivo existe e é um diretório, então é verdadeiro
-f Nome do arquivo Se o arquivo existe e é um arquivo comum, então é verdadeiro
-c Nome do arquivo Se o arquivo existe e é um arquivo especial de caractere, então é verdadeiro
-b Nome do arquivo Se o arquivo existe e é um arquivo especial de bloco, então é verdadeiro
cd /bin
if test -e ./bash
then
    echo 'O arquivo já existe!'
else
    echo 'O arquivo não existe!'
fi

Resultados de Saída:

O arquivo já existe!

Além disso, o Shell também oferece com( -a )、Ou( -o )、Não( ! )três operadores lógicos são usados para conectar condições de teste, sua prioridade é: ! Mais alta, -a Segundo, -o Menor. Por exemplo:

cd /bin
if test -e ./notFile -o -e ./bash
then
    echo 'Pelo menos um arquivo existe!'
else
    echo 'Os dois arquivos não existem'
fi

Resultados de Saída:

Pelo menos um arquivo existe!