这里的 gt 有什么用? "if [ $VARIABLE -gt 0 ]; then"



-gt在这里是什么意思:

if [ $CATEGORIZE -gt 0 ]; then

这是我正在使用的bash脚本的一部分。

此外,我在哪里可以找到"标志"列表,以便将来参考?

-gt是一个算术测试,表示大于

您的条件检查变量CATEGORIZE是否大于零。

引用help test[是一个称为test的命令;help是一个shell内置程序,提供有关shell内置程序的帮助):

  arg1 OP arg2   Arithmetic tests.  OP is one of -eq, -ne,
                 -lt, -le, -gt, or -ge.
  • -eq:相等
  • -ne:不相等
  • -lt:小于
  • -le:小于或等于
  • -gt:大于
  • -ge:大于或等于

您也可以在算术上下文1中表示条件,方法是:

if ((CATEGORIZE > 0)); then

而不是

if [ $CATEGORIZE -gt 0 ]; then

1引用help '((':

(( ... )): (( expression ))

Evaluate arithmetic expression.
The EXPRESSION is evaluated according to the rules for arithmetic
evaluation.  Equivalent to "let EXPRESSION".
Exit Status:
Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise.

-gt的意思是"大于",算术比较

[(特别地)是test的别名(强制最后一个参数为],使其看起来像一对括号)。

bash有自己的"内置"版本[/test,因此任何bash引用(例如man bashinfo bash或http://www.gnu.org/software/bash/manual/)将对此进行文档记录,或者man [/man test应该为您提供标准独立版本的文档。

具体来说,本页概述了bash实现的命令,并列出了可用的运算符。

除了算术和字符串测试外,您可能还会遇到-e测试,用于"文件存在",如[ -e /hard/coded/path/$variable_filename ]

bash还包括一个稍微扩展的版本,形式为[[ ... ]]

最新更新