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#$number
demikian juga number=09; echo "$((10#$number))"
akan menampilkan 9
sementara 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
.