Ben bash terminali için komut dosyası yazma hakkında bilgi edinmeye başladım, ancak karşılaştırmaları düzgün bir şekilde nasıl çalıştıracağımı öğrenemiyorum. Kullandığım komut dosyası:
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;
Sorun, ilk basamaktaki sayıyı karşılaştırmasıdır, yani 9, 10'dan büyük, ancak 1, 09'dan büyüktür.
Gerçek bir karşılaştırma yapmak için sayıları bir türe nasıl dönüştürebilirim?
;
sonundaki gereksizdir. (Eğer sürece değil, tuş vuruşlarını sadece bir atık zarar vermelerini zevk noktalı virgül yazarak).
10#$number
bu durumda number=09; echo "$((10#$number))"
çıktı 9
verilirken echo $((number))
"taban için çok büyük bir değer" hatası üretilir.
>
söylemez : operatörün [
komutta yaptığı şey, iki dizenin sayı olarak sıralayacağı sıradan ziyade sıralaması gereken sırayı karşılaştırmaktır. İçinde daha fazla bilgi bulabilirsiniz man test
.