Estou começando com bash e encontrei 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 de esse tipo de “ferramenta” e o que eles (-lt e -gt) fazem? Obrigado!
Comentários
Resposta
É a abreviação de less than
e greater than
. É usado para comparação de inteiros no bash. Você pode ler mais digitando man test
:
.... INTEGER1 -gt INTEGER2 INTEGER1 is greater than INTEGER2 .... INTEGER1 -lt INTEGER2 INTEGER1 is less than INTEGER2 ....
Resposta
Você pode encontrar a definição de -lt
e -gt
em a documentação do comando test
(man test
), ou em a documentação do bash uma vez que test
é um comando embutido no bash (como na maioria dos outros shells).
-lt
e -gt
são comparações numéricas (menor que [e diferente], maior que [e diferente]). Também existem operadores menor / maior ou igual -le
e -ge
, e operadores iguais e não iguais -eq
e -ne
. Esses são operadores numéricos, então haverá um erro se qualquer lado não for” um número ta e 9
for considerado ered inferior a 10
.
Os nomes de razão como -lt
são usados em vez do usual <
é que o caractere <
seria interpretado como um redirecionamento. Os operadores =
e !=
também existem, mas realizam uma comparação de strings: test 00 -eq 0
é verdadeiro, enquanto test 00 = 0
é falso.
Alguns shells, incluindo bash, também têm operadores <
e >
que executa uma comparação lexicográfica de strings, então test 9 \< 10
é falso porque 9
é classificado antes de 1
(a barra invertida evita 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 pode “ter redirecionamentos internos, portanto <
não precisa ser citado.
Resposta
Eles são apenas operadores.
Simplesmente: gt
e lt
mean> (maior que) e < (menor que).
Você pode procurar aqui para obter mais informações sobre os operadores:
Resposta
Estes são operadores de comparação
-lt = menor que
-gt = maior que
Você pode verificar esta página para mais detalhes:
echo
instruções no código respondem à sua pergunta.