您好,我有这句话,我想知道这是什么意思。
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
)。
-gt
test
记录在或的手册中[
,或者记录在您的 shell 手册中(如果这些是内置实用程序),如
n1 -gt n2
如果该整数
n1
在代数上大于该整数,则为 Truen2
;否则为假。
(以上摘自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.