Merak dışında, bir bash değişkeni karşılaştırması yaparken (değeri an integer
) bir int
ya da a olarak bildirilen önceden tanımlanmış bir değere karşı test etmek mümkündür string
.
Örnek komut dosyası :
#!/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
Çıktı :
$ ./param.sh 1
f1: "1" compared as string
f2: "1" compared as int
ve
$ ./param.sh blah
$
Her iki fonksiyon da aynı şekilde davranır ve bu yüzden bir tamsayı değişkenini kontrol ederken tercih edilen bir yol olup olmadığını merak ediyorum. Ben kontrol etmek için gider int
karşı int
daha sıkı olduğu gibi ama ile yapıyor herhangi kura destek vardır acaba string
?
Bu durumda, f2()
karşılaştırma konusunda da daha katıdır, yani ondalık bir değer iletmek onu bozacaktır, oysa f1()
sorun çıkarmayacaktır.