Estou começando com o bash e achei o seguinte:
if test $first -lt $second
then
echo $first is lower than $second
else
if test $first -gt $second
then
echo $first is higher than $second
else
echo $first and $second are equals
fi
fi
Para ler o script e executá-lo, eu sei o que ele faz, mas não para que servem -lt e -gt.
Alguém pode me dizer qual é o nome desse tipo de 'ferramenta' e o que eles (-lt e -gt) fazem? Obrigado!
echo
instruções no código respondem à sua pergunta.Respostas:
É curto para
less than
egreater than
. É usado para comparação de números inteiros no bash. Você pode ler mais digitandoman test
:fonte
Você pode encontrar a definição
-lt
e-gt
na documentação dotest
comando (man test
) ou na documentação do bash, poistest
é um comando interno no bash (como na maioria dos outros shells).-lt
e-gt
são comparações numéricas (menor que [e não igual], maior que [e não igual]). Existem também operadores menos / maiores ou iguais-le
e-ge
, e operadores iguais e não iguais-eq
e-ne
. Como são operadores numéricos, haverá um erro se um dos lados não for um número e9
for considerado menor que10
.A razão pela qual nomes como
-lt
são usados e não o habitual<
é que o caractere<
seria interpretado como um redirecionamento. Os operadores=
e!=
também existem, mas eles realizam uma comparação de cadeias:test 00 -eq 0
é verdadeira enquantotest 00 = 0
é falsa.Alguns shells, incluindo o bash, também possuem operadores
<
e>
que realizam uma comparação lexicográfica de strings, portanto, issotest 9 \< 10
é falso porque9
foi classificado anteriormente1
(a barra invertida impede que o caractere<
seja interpretado como um operador de redirecionamento). Esses shells também oferecem a sintaxe de colchetes duplos para testes, por exemplo[[ 9 < 10 ]]
(ao contrário de[ 9 \< 10 ]
), que não podem ter redirecionamentos internos para<
que não precisem ser citados.fonte
Eles são apenas operadores.
Simplesmente:
gt
elt
média> (maior que) e <(menor que).Você pode procurar aqui mais informações sobre operadores:
fonte
Estes são operadores de comparação
-lt = menor que
-gt = maior que
Você pode verificar esta página para obter mais detalhes:
fonte