什么是这里的GT? “if [$ VARIABLE -gt 0];然后”

时间:2014-04-08 02:21:07

标签: linux bash shell

-gt在这里意味着什么:

if [ $CATEGORIZE -gt 0 ]; then

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

另外,我在哪里可以找到那里的“旗帜”清单,以便将来可供参考?

2 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:2)

-gt表示“大于”,算术比较

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

bash有自己的“内置”版本[ / test,因此任何bash引用(例如man bashinfo bash或{{3 }}将记录该文件,或man [ / man test应该为您提供标准独立版本的文档。

具体而言,http://www.gnu.org/software/bash/manual/this page gives an overview of the command, as implemented by bash

除了算术和字符串测试之外,您可能会遇到-e测试,因为“文件存在”,如[ -e /hard/coded/path/$variable_filename ]

bash还包含一个稍微扩展的版本this page lists the available operators