
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 -gt
significa?
Responder1
-gt
significa "maior que". É usado para comparar números inteiros para a desigualdade que geralmente é escrita >
em outras linguagens (em alguns shells, com o test
utilitário ou inside [ ... ]
, >
compara duas strings para ordenação lexicográfica, por isso tem um significado muito diferente de -gt
).
-gt
está documentado no manual de test
ou [
, ou no manual do seu shell se estes forem utilitários integrados, como
n1 -gt n2
Verdadeiro se o número inteiro
n1
for algebricamente maior que o número inteiron2
; caso contrário, falso.
(o texto acima foi retirado deo texto padrão POSIX sobre o test
utilitá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 test
ou 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 EXPRESSIONS
seçã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.