উত্তর:
এর জন্য একটি বিশেষ বাক্য গঠন রয়েছে:
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
আপনার উদ্ধৃতি দেওয়া উচিত $@
কারণ আপনি আর্গুমেন্টগুলিতে স্পেস (বা নিউলাইন ইত্যাদি) ধারণ করা সম্ভব যদি আপনি সেগুলি উদ্ধৃত করেন, বা একটি দিয়ে এড়িয়ে যান \
। উদাহরণ স্বরূপ:
./myscript one 'two three'
উদ্ধৃতিগুলির কারণে এটি তিনটির চেয়ে দুটি যুক্তি। যদি আপনি উদ্ধৃতি না দিয়ে থাকেন তবে $@
সেই আর্গুমেন্টগুলি স্ক্রিপ্টের মধ্যেই ভেঙে ফেলা হবে।
for f; do ...