Começando com bash: argumentos -lt e -gt

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

  • Desculpe, mas acho que vale a pena apontar descubra que as echo instruções no código respondem à sua pergunta.
  • As aspas faltam nas variáveis

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:

http://tldp.org/LDP/abs/html/comparison-ops.html

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *