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

  • backyardjay

    backyardjay

    8 ŞUBAT 2009
  • BrandonHarrisWalker

    BrandonHarri

    27 Kasım 2006
  • funbro1

    funbro1

    11 Aralık 2007