shell 脚本中的运算符“-gt”是什么意思?

shell 脚本中的运算符“-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意思是“大于”。它用于比较整数的不等式,这通常>用其他语言编写(在某些 shell 中,使用test实用程序 or inside[ ... ]比较>两个字符串的字典顺序,因此它与 具有非常不同的含义-gt)。

-gttest记录在或的手册中[,或者记录在您的 shell 手册中(如果这些是内置实用程序),如

n1 -gt n2

如果该整数n1在代数上大于该整数,则为 True n2;否则为假。

(以上摘自test有关该实用程序的POSIX 标准文本

Fortran 也在其.GT.数字关系运算符中使用此缩写。

在 shell 中比较整数的其他相关运算符test[ ... ]( -ge“大于或等于”)、-lt(“小于”)、-le(“小于或等于”)、-eq(“等于”) 和-ne(“不等于”)。

有趣的是,全部其中在 Fortran 中是相同的(.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.

相关内容