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

  • BlackmillMusic

    BlackmillMus

    3 Kasım 2010
  • Ordetta Price

    Ordetta Pric

    12 EYLÜL 2011
  • Watcher3223

    Watcher3223

    15 Kasım 2007