Что означает оператор `-gt` в скриптах оболочки?

Что означает оператор `-gt` в скриптах оболочки?

Привет, у меня есть это предложение, и я хочу узнать, что оно означает.

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

Что -gtзначит?

решение1

-gtозначает «больше чем». Он используется для сравнения целых чисел для неравенства, которое обычно записывается >в других языках (в некоторых оболочках, с помощью testутилиты или внутри [ ... ], >сравнивает две строки для лексикографического упорядочивания, поэтому имеет совсем другое значение, чем -gt).

-gtдокументировано в руководстве для testили [, или в руководстве вашей оболочки, если это встроенные утилиты, как

n1 -gt n2

Истина, если целое число n1алгебраически больше целого числа n2; в противном случае — ложь.

(вышеизложенное взято изстандартный текст POSIX об testутилите)

Fortran также использует эту аббревиатуру в своем .GT.реляционном операторе для чисел.

Другими соответствующими операторами для сравнения целых чисел в оболочке с testили в [ ... ]являются -ge(«больше или равно»), -lt(«меньше»), -le(«меньше или равно»), -eq(«равно») и -ne(«не равно»).

Интересно,всеиз них одинаковы в Фортране ( .GT., .GE., .LT., .LE., .EQ.и .NE.).

решение2

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

решение3

Вы можете начать с help test, что отобразит справку по подмножеству синтаксиса POSIX, поддерживаемому оператором [[.

Подробная документация находится в CONDITIONAL EXPRESSIONSразделе man bash.

Конкретно:

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.

Связанный контент