मैं
foo() {
if [[ $# -lt 1 ]]; then
return 0
fi
...
}
देखना वास्तव में यह के रूप में यह वहाँ करता है $ # का उपयोग करके तुलना कर रहा है क्या?
मैं
foo() {
if [[ $# -lt 1 ]]; then
return 0
fi
...
}
देखना वास्तव में यह के रूप में यह वहाँ करता है $ # का उपयोग करके तुलना कर रहा है क्या?
$#
कमांड लाइन तर्क स्क्रिप्ट को पास किया गया है।
sh-3.2$ cat a.sh
foo() {
echo $# #print the number of arguments passed to the function.
}
foo 1
foo 1 2
foo 1 2 3
sh-3.2$ ./a.sh
1
2
3
:
sh-3.2$ cat a.sh
echo $# #print the number of cmd line args.
sh-3.2$ ./a.sh
0
sh-3.2$ ./a.sh foo
1
sh-3.2$ ./a.sh foo bar
2
sh-3.2$ ./a.sh foo bar baz
3
जब (आपके मामले में) एक समारोह के अंदर इस्तेमाल यह कार्य करने के लिए पारित कर दिया तर्क की संख्या का प्रतिनिधित्व करता है
$#
लिपि में दिए गए तर्कों की संख्या है। विशेष पैरामीटर्सपैरामीटर पूर्ण सूची के लिए bash(1)
मैन पेज के अनुभाग का उपखंड देखें।
$#
= फ़ंक्शन पर दिए गए तर्कों की संख्या।
आपके कोड में, फ़ंक्शन पर एक पैरामीटर कम से कम के साथ नहीं कहा जाता है, तो फ़ंक्शन 0 वापस आ जाएगा।