मैं लाइनक्स पर बैश शेल का उपयोग कर रहा हूं और शेल स्क्रिप्ट में 10 से अधिक मापदंडों का उपयोग करना चाहता हूं
मैं लाइनक्स पर बैश शेल का उपयोग कर रहा हूं और शेल स्क्रिप्ट में 10 से अधिक मापदंडों का उपयोग करना चाहता हूं
जवाबों:
उन्हें सेट करने के लिए घुंघराले ब्रेसिज़ का उपयोग करें:
echo "${10}"
आप इस तरह से स्थितीय मापदंडों पर पुनरावृति कर सकते हैं:
for arg
या
for arg in "$@"
या
while (( $# > 0 )) # or [ $# -gt 0 ]
do
echo "$1"
shift
done
${10}
को POSIX
${10}
बहुत पुराने कार्यान्वयन का उपयोग करते समय काम करने के बारे में चिंता केवल आवश्यक है जो मानक अनुपालन नहीं हैं। शायद केवल ऐतिहासिक रुचि का ... और फिर भी मुझे अभी तक इसका उपयोग नहीं करना है! मुझे लगता है क्योंकि सबसे अच्छा अभ्यास यह तय करता है कि 10 तर्क वैसे भी बहुत सारे हैं जब तक कि वे दोहराए नहीं जाते हैं, जिस स्थिति में आप उन पर ध्यान देने के "$@"
बजाय उन पर पुनरावृति करेंगे ।
आपके पास 0 से 255 तक 256 पैरामीटर हो सकते हैं:
${255}
sh -c 'echo ${333}' /usr/bin/*
set $(seq 2097152); echo ${2097152}
-a 1
या--foo=bar
) का उपयोग करना बेहतर होगा । ऐसा करने के लिए कुछ विकल्प देखेंman getopt
,man getopts
औरman bash
।