जवाबों:
इसके लिए एक विशेष वाक्यविन्यास है:
for i do
printf '%s\n' "$i"
done
अधिक सामान्यतः, वर्तमान स्क्रिप्ट या फ़ंक्शन के मापदंडों की सूची विशेष चर के माध्यम से उपलब्ध है $@
।
for i in "$@"; do
printf '%s\n' "$i"
done
ध्यान दें कि आपको दोहरे उद्धरण चिह्नों की आवश्यकता है $@
, अन्यथा पैरामीटर वाइल्डकार्ड विस्तार और क्षेत्र विभाजन से गुजरते हैं। "$@"
जादू है: दोहरे उद्धरण चिह्नों के बावजूद, यह कई क्षेत्रों में फैलता है क्योंकि पैरामीटर हैं।
print_arguments () {
for i in "$@"; do printf '%s\n' "$i"; done
}
print_arguments 'hello world' '*' 'special !\characters' '-n' # prints 4 lines
print_arguments '' # prints one empty line
print_arguments # prints nothing
#! /usr/bin/env bash
for f in "$@"; do
echo "$f"
done
आपको उद्धरण देना चाहिए $@
क्योंकि तर्कों के लिए संभव है कि यदि आप उन्हें उद्धृत करते हैं, तो रिक्त स्थान (या newlines, आदि) को शामिल करें या उनके साथ बच जाएं \
। उदाहरण के लिए:
./myscript one 'two three'
उद्धरणों के कारण यह तीन के बजाय दो तर्क हैं। यदि आप उद्धरण नहीं देते हैं $@
, तो वे तर्क स्क्रिप्ट के भीतर टूट जाएंगे।
for f; do ...