Saya mulai belajar tentang menulis skrip untuk terminal bash, tapi saya tidak tahu cara membuat perbandingan agar berfungsi dengan benar. Script yang saya gunakan adalah:
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;
Masalahnya adalah bahwa ia membandingkan angka dari digit pertama aktif, yaitu 9 lebih besar dari 10, tetapi 1 lebih besar dari 09.
Bagaimana saya bisa mengubah angka menjadi tipe untuk melakukan perbandingan yang benar?
;pada akhir baris berlebihan. Tidak ada salahnya, hanya buang-buang tombol (kecuali Anda menikmati mengetik semi-titik dua).
10#$numberdemikian juga number=09; echo "$((10#$number))"akan menampilkan 9sementara echo $((number))akan menghasilkan kesalahan "nilai terlalu besar untuk basis".
>operator dalam [perintah ini adalah untuk membandingkan urutan dua string yang harus diurutkan, daripada urutan mereka akan mengurutkannya sebagai angka. Anda dapat menemukan info lebih lanjut di man test.