2012-04-17 11 views
1

でのこのよう割り当ててみましょう:比べて2つのパラメータは、「<」シェル

a=7 
b=29 
[[ $a < $b ]] && echo dasf 

それは動作しません!しかし

、Bおよびコマンドと同じで

a=1 

が、それはうまく動作します。

これは非常にファンキーです!誰かがそれを説明できますか?

+0

を試してみてください。使用している構文はbashでは有効ですが、汎用シェルでは有効ではありません。 –

答えて

3

変数は、数値ではなく語彙的に比較しています。

を使用すると、構文エラーを持って、 "シェル" で

[[ $a -lt $b ]] && echo smaller 

または

(($a < $b)) && echo smaller