$#
शेल में क्या मतलब है?
मेरे पास कोड है जैसे
if [ $# -eq 0 ]
then
मैं समझना चाहता हूं कि $#
इसका क्या मतलब है, लेकिन इस प्रकार की चीजों को खोजने के लिए Google खोज बहुत खराब है।
$#
शेल में क्या मतलब है?
मेरे पास कोड है जैसे
if [ $# -eq 0 ]
then
मैं समझना चाहता हूं कि $#
इसका क्या मतलब है, लेकिन इस प्रकार की चीजों को खोजने के लिए Google खोज बहुत खराब है।
जवाबों:
आप हमेशा अपने शेल का मैन पेज देख सकते हैं। man bash
कहते हैं:
Special Parameters
# Expands to the number of positional parameters in decimal.
इसलिए एक शेल स्क्रिप्ट यह जाँच सकती है कि कोड के साथ कितने पैरामीटर दिए गए हैं:
if [ "$#" -eq 0 ]; then
echo "you did not pass any parameter"
fi
man
सहित लगभग कुछ भी कर सकते हैं man
। apropos
कुछ समय का प्रयास भी करें ।
info
या तो मैन पेज के लिए उपयोग करता है , या पैकेज को जोड़ देता है (बहुत अलग, और कंपार्टमेंटलाइज़्ड) अगर पैकेज में कुछ है
वास्तव में,
`$` refer to `value of` and
`#` refer to `number of / total number`
तो एक साथ
`$#` refer to `The value of the total number of command line arguments passed.`
इस प्रकार, आप उपयोग किए $#
गए तर्कों / मापदंडों की संख्या की जांच करने के लिए उपयोग कर सकते हैं जैसे आपने किया था और किसी भी अप्रत्याशित स्थितियों को संभाल सकते हैं।
इसी तरह, हमारे पास है
`$1` for `value of 1st argument passed`
`$2` for 'value of 2nd argument passed`
आदि।
अर्थात्
पैरामीटर की संख्या जिसके साथ स्क्रिप्ट को बुलाया गया है
उन मापदंडों की संख्या जो स्क्रिप्ट द्वारा निर्धारित की गई हैं set -- foo bar
(जब एक फ़ंक्शन के भीतर उपयोग किया जाता है) मापदंडों की संख्या जिसके साथ एक फ़ंक्शन कहा जाता है ( set
वहां भी काम करेगा)।
इसे ब्लॉक मैन पेज में "स्पेशल पैरामीटर्स" में समझाया गया है।