जिज्ञासा से बाहर, जब एक बैश वैरिएबल तुलना (इसका मूल्य a integer
) किया जा रहा है, तो इसे कुछ पूर्वनिर्धारित मूल्य के खिलाफ या तो एक के रूप में घोषित किया जाना संभव int
है string
।
नमूना स्क्रिप्ट :
#!/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
आउटपुट :
$ ./param.sh 1
f1: "1" compared as string
f2: "1" compared as int
तथा
$ ./param.sh blah
$
दोनों फ़ंक्शन समान तरीके से व्यवहार करते हैं, और इसलिए मैं सोच रहा हूं कि क्या पूर्णांक चर की जांच करते समय पसंदीदा तरीका है? मैं जाँच के लिए जाना होगा int
बनाम int
के रूप में यह अधिक सख्त है, लेकिन मुझे आश्चर्य है कि किसी भी ड्रा के साथ यह कर पीठ देखते हैं अगर string
?
इस मामले में, f2()
तुलना के बारे में भी अधिक सख्त है, यानी एक दशमलव मान से गुजरने से यह टूट जाएगा, जबकि f1()
इसे कोई समस्या नहीं होगी।