Karena penasaran, ketika melakukan perbandingan variabel bash (nilainya menjadi an integer
) dimungkinkan untuk mengujinya terhadap beberapa nilai yang telah ditentukan baik dinyatakan sebagai int
atau sebagai a string
.
Contoh skrip :
#!/bin/bash
f1()
{
[ "$1" == "1" ] && echo "$FUNCNAME: \"1\" compared as string"
}
f2()
{
[[ "$1" -eq 1 ]] && echo "$FUNCNAME: \"1\" compared as int"
}
f1 $1
f2 $1
Keluaran :
$ ./param.sh 1
f1: "1" compared as string
f2: "1" compared as int
dan
$ ./param.sh blah
$
Kedua fungsi berperilaku dengan cara yang sama, jadi saya ingin tahu apakah ada cara yang lebih disukai ketika memeriksa variabel integer? Saya akan pergi untuk memeriksa int
versus int
karena lebih ketat tapi saya ingin tahu apakah ada penarikan kembali melakukannya dengan string
?
Dalam hal ini, f2()
juga lebih ketat tentang perbandingan, yaitu melewati nilai desimal akan mematahkannya, sedangkan f1()
akan membawanya tidak ada masalah.