for লুপ ব্যাশ স্ক্রিপ্ট লেখার সময় একই টাস্ক একাধিক ফাইল, রেকর্ড বা ভ্যালুর জন্য রিপিট করার জন্য খুব কাজের টুল।
for স্টেটমেন্ট একটি লিস্টের ভ্যালুগুলোর ওপর ইটারেট করে, প্রতিটি আইটেমে কমান্ডগুলো এক্সিকিউট করে যতক্ষণ না সব আইটেম প্রসেস হয়ে যায়।
ব্যবহারের উদাহরণ: ডিরেক্টরির ফাইলগুলো, টেক্সট ফাইলের লাইনগুলো, বা ডেটাবেস কোয়েরির আউটপুটের ওপর লুপ চালানো।
ব্যাশ ফর লুপ সিনট্যাক্স
for VARIABLE in LIST do COMMANDS done
এখানে:
- VARIABLE হলো ভেরিয়েবল নাম, যা লিস্টের প্রতিটি আইটেম প্রসেস করার সময় অ্যাসাইন হবে
- LIST হতে পারে பல রকম। নিচে উদাহরণ দেখুন
ব্যাশ ফর লুপের উদাহরণ
for লুপ প্রিডিফাইনড লিস্ট বা অন্যান্য স্ক্রিপ্ট/কমান্ডের আউটপুট থেকে জেনারেট করা লিস্টের ওপর ইটারেট করতে পারে।
নাম্বার রেঞ্জের ওপর ফর লুপ দিয়ে ইটারেশন
রেঞ্জের প্রতিটি নাম্বার প্রসেস করা (১ করে ইনক্রিমেন্ট) {START…END} ব্যবহার করে:
for num in {0..10} do echo "I'm counting to 10 and I'm up to $num" done নোট করুন:
- লিস্টের প্রতিটি আইটেমকে num ভেরিয়েবল নাম দেওয়া হয়েছে।
- বादে স্ক্রিপ্টে $num দিয়ে এক্সেস করা যায়।
- নাম্বার রেঞ্জের ওপর ইটারেশন শুধু ব্যাশ ভার্সন ৩ এবং তার উপরে সাপোর্টেড।
- ইটারেট করা নাম্বারগুলো কার্লি ব্রেসের শুরু থেকে শেষ পর্যন্ত ১ করে বাড়তে থাকে
স্টেপিং দিয়ে নাম্বার স্কিপ করা (৩ করে ইনক্রিমেন্ট) - যাতে শুধু ৩ এর গুণিতকগুলো প্রসেস হয় - {START…END…INCREMENT} ব্যবহার করে:
for num in {0..15..3} do echo "$num is a multiple of 3!" done নোট করুন:
- কার্লি ব্রেসের এক্সপ্রেশনে তৃতীয় নাম্বার যোগ করা হয়েছে।
- এটি ০ থেকে ১৫ পর্যন্ত ৩ করে ইনক্রিমেন্ট করে অপারেট করবে
- কাস্টম ইনক্রিমেন্ট সহ রেঞ্জ ইটারেশন শুধু ব্যাশ ভার্সন ৪ এবং তার উপরে সাপোর্টেড।
স্ট্রিং লিস্টের ওপর ফর লুপ দিয়ে ইটারেশন
আপনি স্ট্রিং ভ্যালুয়ের লিস্টের ওপরও ইটারেট করতে পারেন:
for car in Ford Holden Honda BMW Ferrari do echo "I wish I could drive a $car" done
অ্যারে এর ওপর ফর লুপ দিয়ে ইটারেশন
অ্যারে ভেরিয়েবল হিসেবে ডিক্লেয়ার করে তার ভ্যালুগুলোতে ইটারেট করা যায়:
FRUITS=('Apple' 'Pear' 'Orange' 'Strawberry') for fruit in "${FRUITS[@]}" do echo "$fruit is delicious" done ফাইল (এবং অন্যান্য আউটপুট) এর ওপর ফর লুপ দিয়ে ইটারেশন
অন্য কমান্ডলাইন কমান্ডের আউটপুটের ওপরও লুপ চালানো যায়:
for f in * do echo "Filename is $f" done
Break
break স্টেটমেন্ট লুপকে নির্দিষ্ট পয়েন্টে বের করে দেয়:
for num in {0..15..3} do echo "$num is a multiple of 3!" if [[ "$num" == '9' ]] then break fi done echo 'Finished counting at 9!' Continue
continue স্টেটমেন্ট বর্তমান ইটারেশনের কোড এক্সিকিউশন বন্ধ করে (সেটা স্কিপ করে) পরবর্তী ইটারেশনে চলে যায়:
for num in {0..15..3} do if [[ "$num" == '6' ]] then continue fi echo "$num is a multiple of 3!" done echo 'The number 6 was skipped!' উপসংহার
স্ক্রিপ্ট লিখতে লুপ ব্যবহার করলে সময় বাঁচায় এবং ফ্লেক্সিবল স্ক্রিপ্ট লিখতে হেল্প করে যা ম্যানুয়াল ডেটা এন্ট্রি ছাড়া ফাইল এবং ডেটা প্রসেসিং অটোমেট করতে পারে।
আরও ব্যাশ স্ক্রিপ্টিং টিপসের জন্য আমাদের অন্যান্য আর্টিকেল চেক করুন!