bashで始まり、次のことがわかりました:
if test $first -lt $second then echo $first is lower than $second else if test $first -gt $second then echo $first is higher than $second else echo $first and $second are equals fi fi
スクリプトを読んで実行するために、スクリプトの機能はわかっていますが、-ltと-gtの目的はわかりません。
誰かに名前を教えてもらえますかそのような「ツール」とそれら(-ltおよび-gt)の機能は?ありがとうございます!
コメント
回答
less than
とgreater than
の略です。これは、bashでの整数比較に使用されます。詳細については、man test
と入力してください。
.... INTEGER1 -gt INTEGER2 INTEGER1 is greater than INTEGER2 .... INTEGER1 -lt INTEGER2 INTEGER1 is less than INTEGER2 ....
回答
-lt
と-gt
の定義は次の場所にあります。 test
コマンド(man test
)のドキュメント、またはtest
はbashに組み込まれているコマンドであるため、bashのドキュメント(他のほとんどのシェルと同様)。
-lt
と-gt
は数値比較です(より小さい[かつ等しくない]、より大きい[かつ等しくない])。より小さい/より大きいまたは等しい演算子-le
と-ge
、および等しい演算子と等しくない演算子-eq
と-ne
。これらは数値演算子であるため、どちらかの側が数値ではなく、9
が考慮される場合、エラーが発生します。 10
未満です。
通常のivid = “ではなく、-lt
のような理由名が使用されます。 e7079590c0 “>
は、文字<
がリダイレクトとして解釈されることです。演算子=
と!=
も存在しますが、文字列比較を実行します:test 00 -eq 0
はtrueであるのに対し、test 00 = 0
はfalseです。
bashを含む一部のシェルには、演算子<
と>
は文字列の字句比較を実行するため、9
はivid =の前に並べ替えられるため、test 9 \< 10
はfalseになります。 “97ac67c122″>
(バックスラッシュにより、文字<
がリダイレクト演算子として解釈されなくなります)。これらのシェルは、テスト用の二重括弧構文も提供します。 [[ 9 < 10 ]]
([ 9 \< 10 ]
とは対照的に)、内部にリダイレクトを含めることができないため、<
引用する必要はありません。
echo
ステートメントが質問に答えていることを確認してください。