2017-03-12 14 views
2

私はシェルでなぜbashの数値を比較すると「[[10 <2]」が真ですか?

if [[ 10 < 2 ]]; 
    then echo "yes"; 
else echo "no"; 
fi 

を実行すると、それはyesを返します。どうして?それはnoでしょうか? そして、私は

if [[ 20 < 2 ]]; 
    then echo "yes"; 
else echo "no"; 
fi 

を実行すると、それはnoを返します。

+0

あなたが質問をした場合、インターフェイスは、検索のシリーズを示している必要がありますをエコーし​​ます同様の質問の結果。ヘッダーにフラグが立てられているものはありませんでしたか? –

答えて

6

あなたがLexicographical orderではなく数字

に応じて文字列を比較するので、あなたは[[ 10 -lt 2 ]][[ 20 -lt 2 ]]を使用することができます。 -ltを表し、<)未満を表します。 の場合は、>-gt以上の表記を使用することができます。 bashの二重括弧で

は数値比較を行うために、同様に使用することができます。

if ((10 < 2)); then echo "yes"; else echo "no"; fi 

上記の例ではno

+0

ありがとう、私はそれを得る。 – rajen

+0

私はbashシェルを使用しています – rajen

関連する問題