[ $Server_Name=1 ]
tidak berfungsi seperti yang dimaksudkan karena sintaks di dalam tanda kurung tunggal tidak khusus untuk Bash. Seperti biasa, variabel $Server_Nameakan diganti dengan 1, sehingga semua perintah test ( [) melihat adalah argumen tunggal: string 1=1. Karena sengatan itu memiliki panjang non-nol, tes mengembalikan true .
Untuk shell yang mematuhi POSIX, Anda dapat menggunakan perintah tes berikut :
[ "$Server_Name" = 1 ]
cek adalah $Server_Namesama dengan string 1.
[ "$Server_Name" -eq 1 ]
cek adalah $Server_Namesama dengan angka 1 , yaitu, ia melakukan perbandingan angka bukannya perbandingan string.
Nilai balik dari kedua perintah akan berbeda, misalnya, jika Anda mendefinisikan Server_Name=01. Yang pertama akan mengembalikan false, yang kedua akan mengembalikan true.
Perhatikan bahwa jika ada kemungkinan variabel $Server_Nametidak terdefinisi, itu harus dikutip atau tes akan menampilkan kesalahan ketika dipanggil.
if [ ! "x$var" = "x" ]; then\n if [ $var -eq 1 ]; then ...