O que significa o operador `-gt` em scripts de shell?

O que significa o operador `-gt` em scripts de shell?

Olá, tenho esta frase e quero saber o que significa, por favor.

if [[ -z "$1" ]]; then   #  --> this is if the value of the parameter $1 is zero
    PASO=1
elif [[ "$1" -gt 1 ]] ; then  # but i don't know what this flags mean? .."-gt"
    LOG "[$(date +%T)] Parametros incorrectos"
    exit 255
else
    PASO=$1
fi

O que -gtsignifica?

Responder1

-gtsignifica "maior que". É usado para comparar números inteiros para a desigualdade que geralmente é escrita >em outras linguagens (em alguns shells, com o testutilitário ou inside [ ... ], >compara duas strings para ordenação lexicográfica, por isso tem um significado muito diferente de -gt).

-gtestá documentado no manual de testou [, ou no manual do seu shell se estes forem utilitários integrados, como

n1 -gt n2

Verdadeiro se o número inteiro n1for algebricamente maior que o número inteiro n2; caso contrário, falso.

(o texto acima foi retirado deo texto padrão POSIX sobre o testutilitário)

Fortran também usa esta abreviatura em seu .GT.operador relacional para números.

Os outros operadores relevantes para comparar números inteiros no shell com testou em [ ... ]são -ge("maior que ou igual"), -lt("menor que"), -le("menor que ou igual"), -eq("igual") e -ne(" não igual").

Interessantemente,todosdestes são os mesmos em Fortran ( .GT.,,,,, e ) ..GE..LT..LE..EQ..NE.

Responder2

$ help test
test: test [expr]
    Evaluate conditional expression.
...
      arg1 OP arg2   Arithmetic tests.  OP is one of -eq, -ne,
                     -lt, -le, -gt, or -ge.

    Arithmetic binary operators return true if ARG1 is equal, not-equal,
    less-than, less-than-or-equal, greater-than, or greater-than-or-equal
    than ARG2.

Responder3

Você pode começar com help test, que exibirá a ajuda do subconjunto POSIX da sintaxe suportada pelo [[operador.

Uma documentação abrangente está na CONDITIONAL EXPRESSIONSseção man bash.

Especificamente:

Other operators:
  ...
  arg1 OP arg2   Arithmetic tests.  OP is one of -eq, -ne,
                 -lt, -le, -gt, or -ge.

Arithmetic binary operators return true if ARG1 is equal, not-equal,
less-than, less-than-or-equal, greater-than, or greater-than-or-equal
than ARG2.

informação relacionada