SORU
7 EYLÜL 2013, CUMARTESİ


Bash karşılaştırarak numaraları

Bash terminal için kod yazma hakkında bilgi edinmek için başladım, ama karşılaştırmalar düzgün çalışması için nasıl çözemiyorum. Bu sadece sorumun cevabını bulamadım, çok temel bir yere (ya da en azından tamamen aramak için ne olduğundan emin değilim) emin değilim. Kullandığım komut:

echo "enter two numbers";

read a b;

echo "a=$a";
echo "b=$b";

if [ $a \> $b ];

then 

echo "a is greater than b";

else 

echo "b is greater than a";

fi;

Ben sorunu ilk basamak sayısı üzerinde kıyaslar, 9 yani 10000, ama 1 09 büyüktür. daha büyük. Ne kadar doğru bir karşılaştırma yapmak için bir tür numaraları dönüştürebilirsiniz? Bu muhtemelen irritatingly basit olduğunu biliyorum, ama herhangi bir yardım büyük mutluluk duyacağız!

CEVAP
7 EYLÜL 2013, CUMARTESİ


Bash, arithmetic context kontrol yapmanız gerekir:

if (( a > b )); then
    ...
fi

(()), desteklemeyen POSIX kabukları -lt -gt kullanabilirsiniz.

if [ "$a" -gt "$b" ]; then
    ...
fi

help test karşılaştırma operatörleri tam bir listesini alabilirsiniz.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • alexis gillis

    alexis gilli

    23 HAZİRAN 2011
  • Friday NightFort

    Friday Night

    15 EYLÜL 2011
  • The Amazing Atheist

    The Amazing

    20 Kasım 2006