আপনার শেল স্ক্রিপ্টগুলিতে লুপ হওয়া পর্যন্ত কীভাবে ব্যবহার করবেন


তিনটি লুপ কনস্ট্রাক্টশনের জন্য, যখন এবং যতক্ষণ না বাশ হয়। প্রতিটি লুপ সিন্টেক্সটিক এবং কার্যত পৃথক হয়ে থাকে যখন নির্দিষ্ট উদ্দেশ্যকে মূল্যায়ন করা হয় তখন তাদের উদ্দেশ্য কোডের একটি ব্লকের উপরে পুনরাবৃত্তি করা।

যতক্ষণ পর্যন্ত এক্সপ্রেশনটি মিথ্যা হিসাবে মূল্যায়ন না করা হয় লুপ কোডের একটি ব্লক নির্বাহ করতে ব্যবহৃত হয়। এটি কিছুক্ষণের লুপের ঠিক বিপরীত। লুপটি কোড ব্লক চালিত করার সময় অভিব্যক্তিটি সত্য এবং লুপটি বিপরীতে না হওয়া পর্যন্ত।

until [ expression ]
do
	code block
	...
	...
done

আসুন সিনট্যাক্সটি ভেঙে ফেলা যাক।

  • লুপটি শুরু করতে আপনার একক বা ডাবল ধনুর্বন্ধনী মধ্যে একটি অভিব্যক্তি অনুসরণ করে কীওয়ার্ড না হওয়া অবধি ব্যবহার করা উচিত
  • কোড ব্লক চালানো শুরু না করা অবধি অভিব্যক্তিটি মিথ্যা হিসাবে মূল্যায়ন করা উচিত
  • কোডের আসল ব্লকটি করণ এবং সম্পন্ন করার মধ্যে স্থাপন করা হয়

এই সংক্ষিপ্ত নিবন্ধে, আপনি নীচের উদাহরণগুলি ব্যবহার করে আপনার শেল স্ক্রিপ্টগুলিতে লুপ হওয়া পর্যন্ত কীভাবে ব্যবহার করবেন তা শিখবেন।

স্ক্রিপ্টগুলিতে একটি অসীম লুপ তৈরি করুন

আপনি একটি অভিব্যক্তি হিসাবে একটি মিথ্যা বিবৃতি ব্যবহার করে একটি অসীম লুপ তৈরি করতে পারেন। অসীম লুপগুলি সিমুলেট করার চেষ্টা করার সময় ঘুম ব্যবহার করার চেষ্টা করুন যা স্ক্রিপ্টটি পর্যায়ক্রমে পাস করবে।

count=0
until false
do
	echo "Counter = $count"
	((count++))
	sleep 2
done

একক লাইন বিবৃতি তৈরি করুন

আপনি একক লাইন লুপ বিবৃতি তৈরি করতে পারেন। নীচের কোডটি একবার দেখুন। এটি আমাদের প্রথম অসীম লুপ উদাহরণের মতো তবে একক লাইনে। এখানে প্রতিটি বিবৃতি শেষ করতে আপনাকে একটি সেমিকোলন (;) ব্যবহার করতে হবে।

# until false; do echo "Counter = $count"; ((count++)); sleep 2; done

বিরতির সাথে প্রবাহ পরিবর্তন করুন এবং বিবৃতি অবিরত করুন

আপনি একটি বিরতি ব্যবহার করতে পারেন এবং লুপ করার সময় ভিতরে বিবৃতিগুলি চালিয়ে যেতে পারেন। ব্রেক স্টেটমেন্টটি লুপ থেকে বেরিয়ে যাবে এবং নিয়ন্ত্রণটি পরবর্তী স্টেটমেন্টে পৌঁছে দেবে যখন চালিয়ে যাওয়া বিবৃতিটি বর্তমান পুনরাবৃত্তিটি এড়িয়ে যাবে এবং লুপের পরবর্তী পুনরাবৃত্তিটি শুরু করবে।

আমি একই অসীম লুপ উদাহরণ ব্যবহার করছি। এখানে যখন গণনা পাঁচটির সমান হয় তখন বিবৃতিটি পরবর্তী পুনরাবৃত্তিতে লাফিয়ে দেবে বাকী লুপের দেহটি বাদ দেয়। একইভাবে, গণনাটি 10 এর সমান বা তার চেয়ে বেশি হলে লুপটি ভেঙে যায়।

count=0
until false
do
  ((count++))
  if [[ $count -eq 5 ]]
  then
    continue
  elif [[ $count -ge 10 ]]
  then
    break
  fi
  echo "Counter = $count"
done

এই নিবন্ধটির জন্য এটি। শীঘ্রই আমরা আপনাকে অন্য একটি আকর্ষণীয় নিবন্ধটি ধরে ফেলব ‘অবধি’ তারপরে পড়তে থাকুন এবং আমাদের সমর্থন দিন।