Este guia demonstra como usar o comando Bash Test.
Comando de teste
O comando de teste leva um EXPRESSÃO como um argumento. Depois de calcular a expressão, o teste retorna um valor à variável Bash “$?”. Se o valor for 0, a avaliação da expressão foi verdadeira. Se o valor for 1, a avaliação da expressão foi falsa.
Existem duas sintaxes para usar o comando de teste.
$ Expressão de teste
$ [Expressão]
Observe que, no caso de "[", há um espaço nas duas extremidades do EXPRESSÃO.
Uso de teste
Aqui está um pequeno exemplo de como o comando de teste funciona. Estaremos verificando se 1 é igual a 2. Se for verdade, então a saída será "verdadeira". Caso contrário, a saída será "falsa".
$ teste 1 -eq 2 && echo “true” || eco “falso”
Vamos quebrá -lo.
Se a parte do teste for verdadeira, o primeiro comando de eco será executado. Caso contrário, o segundo comando de eco será executado.
O mesmo comando pode ser expresso usando “[“.
$ [1 -EQ 2] && echo “true” || eco “falso”
Expressão
A expressão é o que dá ao comando do teste seu verdadeiro poder. O teste pode usar strings, arquivos e números inteiros para comparação. Aqui está uma lista rápida de todos os formatos de expressão de teste disponíveis.
Corda
Na programação, uma string é um conjunto de caracteres que geralmente são usados para representar o texto. Por exemplo, "Hello World" no seguinte comando Echo é tratado como uma string.
$ eco “Hello World.”
O comando de teste suporta as seguintes expressões de string.
Vamos experimentar essas expressões.
$ [-n “Hello World”] && echo “true” || eco “falso”
$ [-z “Hello World”] && echo “true” || eco “falso”
$ [“Hello World” != “Hello World”] && echo “true” || eco “falso”
$ ["Hello World" = "Hello World"] && echo "true" || eco “falso”
Inteiro
O primeiro exemplo deste guia demonstra comparação inteira. Existem mais maneiras de comparar números inteiros.
Vamos colocar essas expressões em ação.
$ [5 -EQ 10] && echo “true” || eco “falso”
$ [5 -GT 2] && echo "true" || eco “falso”
$ [4 -le 5] && echo “true” || eco “falso”
Arquivo
Os arquivos também podem fazer parte da expressão. Aqui está a lista de expressões de arquivo suportadas.
O restante das expressões de arquivo suportado está relacionado a uma única propriedade de um único arquivo.
Vamos dar uma olhada em alguns exemplos.
$ [-x/usr/bin/bash] && echo $?
$ [-s /bin /bash] && echo $?
$ [-r /bin] && echo $?
$ [-e /hello_world] && echo "true" || eco "falso"
Implementando teste em scripts de bash
Até agora, demonstramos como usar o comando de teste para determinar se uma determinada condição é verdadeira ou falsa. Podemos implementar isso em scripts Bash para tomar decisões úteis.
Dê uma olhada no seguinte script curto.
#!/BIN/BASH
se [$ (whoami) = root]; então
eco "raiz"
outro
eco “não raiz”
fi
Aqui, a declaração se verificará se a condição é verdadeira ou falsa. Usando o comando de teste, podemos facilmente obter o valor booleano.
Execute o script com e sem privilégio de raiz.
$ ./fictício.sh
$ sudo ./fictício.sh
É uma demonstração simples de declaração if-else. Sinta-se à vontade para conferir as declarações Bash if-Else para obter aplicativos mais detalhados.
Pensamentos finais
O comando de teste é simples, mas poderoso. Este guia explica e demonstra várias maneiras de usar o teste. A lista completa de todas as expressões suportadas está disponível na página do homem.
$ teste man
Computação feliz!