এর জন্য অনেক ফাইল, রেকর্ড বা অন্যান্য মানের জন্য একটি টাস্ক পুনরাবৃত্তি করার জন্য ব্যাশ স্ক্রিপ্ট লেখার সময় লুপ একটি সহজ টুল।
সকল আইটেম প্রক্রিয়া না হওয়া পর্যন্ত বিবৃতিটি মানগুলির একটি তালিকার উপর পুনরাবৃত্তি করবে, প্রতিটিতে কার্য সম্পাদন করবে৷
ব্যবহারের ক্ষেত্রে একটি ডিরেক্টরির ফাইলের উপর লুপ করা, একটি টেক্সট ফাইলের লাইন, বা একটি ডাটাবেস কোয়েরির আউটপুট অন্তর্ভুক্ত।
লুপ সিনট্যাক্সের জন্য ব্যাশ
for VARIABLE in LIST do COMMANDS done
কোথায়:
- পরিবর্তনশীল হল একটি পরিবর্তনশীল নাম যা তালিকার প্রতিটি আইটেমের জন্য বরাদ্দ করা হবে যখন এটি COMMANDS দ্বারা প্রক্রিয়া করা হয়
- LIST অনেকগুলি ফর্ম নিতে পারে৷ উদাহরণের জন্য নিচে দেখুন
লুপের জন্য ব্যাশের উদাহরণ
এর জন্য লুপগুলি পূর্বনির্ধারিত তালিকা বা অন্যান্য স্ক্রিপ্ট বা কমান্ড-লাইন অ্যাপ্লিকেশনের আউটপুট থেকে তৈরি করা তালিকার উপর পুনরাবৃত্তি করতে পারে।
একটি এর জন্য দিয়ে সংখ্যার একটি পরিসরে পুনরাবৃত্তি করা লুপ
{START…END} ব্যবহার করে পরিসরে প্রতিটি সংখ্যা প্রক্রিয়া করা হচ্ছে (1 দ্বারা বৃদ্ধি হচ্ছে) :
for num in {0..10} do echo "I'm counting to 10 and I'm up to $num" done
মনে রাখবেন:
- তালিকার প্রতিটি আইটেমের পরিবর্তনশীল নাম num. দেওয়া আছে
- এগুলি পরে $num ব্যবহার করে স্ক্রিপ্টে অ্যাক্সেস করা হয়
- সংখ্যার রেঞ্জের উপর পুনরাবৃত্তি করা শুধুমাত্র Bash সংস্করণ 3 এবং তার উপরে সমর্থিত৷
- কোঁকড়া ধনুর্বন্ধনীর শুরুতে সংখ্যা দিয়ে যে সংখ্যাগুলিকে পুনরাবৃত্তি করতে হবে তা শুরু হয় এবং শেষে সংখ্যায় চলে যায়, 1 এর বৃদ্ধিতে
পদক্ষেপ সংখ্যার বেশি এবং 3 দ্বারা বৃদ্ধি করা – যাতে শুধুমাত্র 3 এর গুণিতকগুলি প্রক্রিয়া করা হয় – {START…END…INCREMENT} ব্যবহার করে :
for num in {0..15..3} do echo "$num is a multiple of 3!" done
মনে রাখবেন:
- কোঁকড়া ধনুর্বন্ধনীতে অভিব্যক্তিতে একটি তৃতীয় সংখ্যা যোগ করা হয়েছে।
- এটি 3 এর বৃদ্ধিতে 0 থেকে 15 পর্যন্ত সংখ্যায় কাজ করবে
- একটি কাস্টম বৃদ্ধি সহ রেঞ্জের উপর পুনরাবৃত্তি করা শুধুমাত্র Bash সংস্করণ 4 এবং তার উপরে সমর্থিত৷
একটি এর জন্য দিয়ে স্ট্রিংগুলির একটি তালিকার উপর পুনরাবৃত্তি করা লুপ
আপনি স্ট্রিং মানগুলির একটি তালিকাতেও পুনরাবৃত্তি করতে পারেন:
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
ব্রেক
বিরতি বিবৃতি একটি প্রদত্ত বিন্দুতে লুপ থেকে প্রস্থান করবে:
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!'
চালিয়ে যান
চালিয়ে যান বিবৃতিটি লুপের বর্তমান পুনরাবৃত্তিতে কোডটি কার্যকর করা বন্ধ করবে (এটি সম্পূর্ণভাবে এড়িয়ে যাবে) এবং চালিয়ে যাবে পরবর্তী পুনরাবৃত্তিতে:
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!'
উপসংহার
স্ক্রিপ্ট লেখার সময় লুপ ব্যবহার করা আপনার সময় সাশ্রয় করবে এবং আপনাকে নমনীয় স্ক্রিপ্ট লিখতে অনুমতি দেবে যা ম্যানুয়াল ডেটা এন্ট্রি ছাড়াই ফাইল এবং ডেটা প্রক্রিয়াকরণ স্বয়ংক্রিয় করতে পারে।
আরও ব্যাশ স্ক্রিপ্টিং টিপসের জন্য আমাদের অন্যান্য নিবন্ধগুলি দেখুন!