O comando de teste pode ser usado na linha de comando do Linux para comparar um elemento com outro, mas é mais comumente usado em scripts de shell BASH como parte de instruções condicionais que controlam a lógica e o fluxo do programa.
Um exemplo básico
Você pode tentar esses comandos simplesmente abrindo uma janela de terminal.
teste 1-eq 2 && echo "sim" || eco "não"
O comando acima pode ser dividido da seguinte forma: Em essência, o comando está comparando 1 a 2 e se eles coincidirem, a instrução echo "yes" é executada exibindo "yes" e se eles não corresponderem, a instrução echo "no" é executada e exibe "no". Se você estiver comparando elementos que analisam como números, você pode usar os seguintes operadores de comparação: Exemplos teste 1-eq 2 && echo "sim" || eco "não"
(exibe "não" para a tela porque 1 não é igual a 2) teste 1 -ge 2 && echo "sim" || eco "não"
(exibe "não" para a tela porque 1 não é maior ou igual a 2) teste 1 -gt 2 && echo "sim" || eco "não"
(exibe "não" para a tela porque 1 não é maior que 2) teste 1 -le 2 && echo "sim" || eco "não"
(exibe "sim" para a tela porque 1 é menor ou igual a 2) teste 1 -lt 2 && echo "sim" || eco "não"
(exibe "sim" para a tela porque 1 é menor ou igual a 2) teste 1 -ne 2 && echo "sim" || eco "não"
(exibe "sim" para a tela porque 1 não é igual a 2) Se você estiver comparando elementos que analisam como strings, você pode usar os seguintes operadores de comparação: Exemplos teste "string1" = "string2" && echo "sim" || eco "não"
(exibe "não" para a tela porque "string1" não é igual a "string2") teste "string1"! = "string2" && echo "yes" || eco "não"
(exibe "sim" para a tela porque "string1" não é igual a "string2") teste -n "string1" && echo "yes" || eco "não"
(exibe "sim" para a tela porque "string1" tem um comprimento de string maior que zero) teste -z "string1" && echo "yes" || eco "não"
(exibe "não" para a tela porque "string1" tem um comprimento de string maior que zero) Se você estiver comparando arquivos, poderá usar os seguintes operadores de comparação: Exemplos teste / caminho / para / arquivo1 -nt / caminho / para / arquivo2 && echo "sim"
(Se file1 for mais recente que file2, a palavra "yes" será exibida) teste -e / caminho / para / arquivo1 && echo "sim"
(se file1 existir, a palavra "yes" será exibida) teste -O / caminho / para / arquivo1 && echo "sim"
(se você possui file1 então a palavra "yes" é exibida ") Terminologia Até agora, tudo tem comparado uma coisa à outra, mas e se você quiser comparar duas condições? Por exemplo, se um animal tiver 4 pernas e for "moo", provavelmente é uma vaca. Simplesmente verificar se há 4 pernas não garante que você tenha uma vaca, mas verificar o som que ela faz certamente não é suficiente. Para testar as duas condições de uma só vez, use a seguinte instrução: teste 4-eq 4 -a "moo" = "moo" && echo "é uma vaca" || eco "não é uma vaca"
A parte chave aqui é a -a que significa e . Existe uma maneira melhor e mais comum de executar o mesmo teste e isso é o seguinte: teste 4-eq 4 && teste "moo" = "moo" && echo "é uma vaca" || eco "não é uma vaca"
Outro teste que você pode querer fazer é comparar duas instruções e, se for true, gerar uma string. Por exemplo, se você quiser verificar se existe um arquivo chamado "file1.txt" ou se existe um arquivo chamado "file1.doc", use o seguinte comando: teste -e arquivo1.txt -o -e arquivo1.doc && echo "arquivo1 existe" || echo "file1 não existe"
A parte chave aqui é o -o que significa ou . Existe uma maneira melhor e mais comum de executar o mesmo teste e isso é o seguinte: teste -e arquivo1.txt || teste -e file1.doc && echo "file1 exists" || echo "file1 não existe" Você não precisa usar a palavra teste para realizar a comparação. Tudo o que você precisa fazer é colocar a declaração entre colchetes da seguinte maneira: -e file1.txt && echo "file1 exists" || echo "file1 não existe"
O e basicamente significa o mesmo que teste. Agora você sabe disso, você pode melhorar comparando várias condições da seguinte maneira: 4-eq 4 && "moo" = "moo" && echo "é uma vaca" || eco "não é uma vaca"-e arquivo1.txt || -e file1.doc && echo "file1 exists" || echo "file1 não existe" O comando de teste é mais útil em scripts porque você pode testar o valor de uma variável em relação a outra e controlar o fluxo do programa. Na linha de comando padrão, você pode usá-lo para testar se um arquivo existe ou não.
Comparando Números
Comparando Texto
Comparando Arquivos
Comparando Múltiplas Condições
Eliminando a palavra-chave de teste
Resumo