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

  • Bennythecoder

    Bennythecode

    25 Mart 2008
  • Bratayley

    Bratayley

    30 Aralık 2010
  • cdgotx

    cdgotx

    8 Kasım 2011