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
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.
Nasıl bir bash betiği numaraları ekley...
Satır Numaraları olmadan tarih Bash?...
Unıx yeni satır (\n) bash komut için W...
Nasıl bash komut düzenli ifadeler kull...
Düzenli ifade ile eşleşen numaraları —...