web-dev-qa-db-ja.com

シェルスクリプトの演算子 `-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の意味?

8
Sergio
$ 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.
12
glenn jackman

-gtは「より大きい」を意味します。他の言語で>と通常記述される不等式の整数を比較するために使用されます(一部のシェルでは、testユーティリティを使用するか、[ ... ]内で>は2つを比較します辞書式順序付けのための文字列なので、-gt)とは非常に異なる意味を持ちます。

-gtは、testまたは[のマニュアル、またはこれらが組み込みユーティリティの場合はシェルのマニュアルに記載されています。

n1 -gt n2

整数n1が代数的に整数n2より大きい場合はtrue。それ以外の場合はfalse。

(上記は testユーティリティに関するPOSIX標準テキスト から取得)

Fortranでは、数値の.GT.関係演算子でもこの省略形を使用しています。

シェルでtestまたは[ ... ]と整数を比較するためのその他の関連演算子は、-ge( "以上")、-lt( "以下"です。 ")、-le("以下 ")、-eq("等しい ")および-ne("等しくない ")。

興味深いことに、allはFortran(.GT..GE..LT..LE..EQ.および.NE.)。

11
Kusalananda

help testから始めることができます。これにより、[[演算子でサポートされている構文のPOSIXサブセットのヘルプが表示されます。

包括的なドキュメントはCONDITIONAL EXPRESSIONSman 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.
3
bobah