2013-07-30 108 views
1

如何完成负数比较的负数?比较负数中的负数

if [[ "-2" > "-1" ]]; then 
    echo "-2 >-1" 
else 
    echo "-2 <=-1" 
fi 

我也试过

if [ '-2' -lt '-1' ]; then 

但病情始终行为就像-2会大于-1。

比较工作时,我不使用负数。

如果可能的话,我想在纯bash中的解决方案。

回答

5

似乎正常工作:

if [[ "-2" -gt "-1" ]]; then 
    echo "-2 >-1" 
else 
    echo "-2 <=-1" 
fi 

输出:

-2 <=-1 

您可能需要使用((...))这使得根据壳牌算术规则计算的表达式。

$ ((-2 <= -1)) && echo Smaller or equal || echo Larger 
Smaller or equal 
$ ((-2 <= -3)) && echo Smaller or equal || echo Larger 
Larger 
2
$ a=-2 
$ [ $a -le -1 ] && echo "i am lower or equal than -1" 
i am lower or equal than -1 

if [ $a -le -1 ]; then 
    echo "i am lower or equal than -1" 
fi 

为了让 “大于”,你需要ge(大于或等于)或gt(严格大于)。

+1

'-le'并不意味着它更低。 –

+0

@KarolyHorvath只是更新它,谢谢。 – fedorqui

5

-lt表示小于。事实上,-2小于-1。

要使用-gt,大于