जवाबों:
इसके लिए एक विशेष वाक्यविन्यास है:
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 ...