Was bedeutet der Operator „-gt“ in Shell-Skripten?

Was bedeutet der Operator „-gt“ in Shell-Skripten?

Hallo, ich habe diesen Satz und möchte bitte wissen, was er bedeutet.

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

Was -gtbedeutet?

Antwort1

-gtbedeutet „größer als“. Es wird verwendet, um Ganzzahlen auf die Ungleichheit hin zu vergleichen, die normalerweise in anderen Sprachen geschrieben wird >(in einigen Shells werden mit dem testDienstprogramm oder innerhalb von [ ... ]zwei >Zeichenfolgen auf lexikografische Reihenfolge verglichen, sodass es eine ganz andere Bedeutung als hat -gt).

-gtist im Handbuch für testoder dokumentiert [, oder im Handbuch Ihrer Shell, wenn es sich um integrierte Dienstprogramme handelt, wie

n1 -gt n2

Wahr, wenn die Ganzzahl n1algebraisch größer als die Ganzzahl ist n2, andernfalls falsch.

(das Obige stammt ausder POSIX-Standardtext über das testDienstprogramm)

Fortran verwendet diese Abkürzung auch in seinem .GT.relationalen Operator für Zahlen.

Die anderen relevanten Operatoren zum Vergleichen von Ganzzahlen in der Shell mit testoder in [ ... ]sind -ge(„größer als oder gleich“), -lt(„kleiner als“), -le(„kleiner als oder gleich“), -eq(„gleich“) und -ne(„ungleich“).

Interessant,alledavon sind in Fortran gleich ( .GT., .GE., .LT., .LE., .EQ.und .NE.).

Antwort2

$ 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.

Antwort3

Sie können mit beginnen help test, wodurch die Hilfe zur POSIX-Teilmenge der vom [[Operator unterstützten Syntax angezeigt wird.

Eine ausführliche Dokumentation befindet sich im CONDITIONAL EXPRESSIONSAbschnitt man bash.

Speziell:

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.

verwandte Informationen