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

  • Damien Hayes

    Damien Hayes

    11 Mart 2008
  • HowcastTechGadgets

    HowcastTechG

    22 EYLÜL 2010
  • nemoking of kinges

    nemoking of

    4 EYLÜL 2009