বাশের লুপটি ভেঙে কিভাবে যায়?


150

আমি পাঠ্য প্রক্রিয়া করতে বাশ স্ক্রিপ্ট লিখতে চাই, যার জন্য কিছুক্ষণ লুপের প্রয়োজন হতে পারে।

উদাহরণস্বরূপ, সিটিতে কিছুক্ষণ লুপ করুন:

int done = 0;
while(1) {
  ...
  if(done) break;
}

আমি এর সমান বাশ লিপি লিখতে চাই। তবে আমি সাধারণত যা ব্যবহার করি এবং আমি যে সমস্ত ক্লাসিক উদাহরণ পড়েছি তা প্রদর্শিত হয়েছে:

while read something;
do
...
done

এটি কীভাবে করা যায় while(1){}এবং break;কোনটি সি-তে ভালভাবে সংজ্ঞায়িত এবং ব্যাপকভাবে ব্যবহৃত হয় সে সম্পর্কে কোনও সহায়তা দেয় না , এবং আমাকে স্টিডিনের জন্য ডেটা পড়তে হবে না।

উপরের সি কোডের সমতুল্য কোনও ব্যক্তি আমাকে সাহায্য করতে পারে?

উত্তর:


189

এটি এর চেয়ে আলাদা নয় bash।

done=0
while : ; do
  ...
  if [ "$done" -ne 0 ]; then
      break
  fi
done

:কোন অপ-আদেশ হ'ল; এর প্রস্থান স্থিতি সর্বদা 0 থাকে, সুতরাং লুপটি doneএকটি শূন্য- অবধি মান না দেওয়া অবধি চালিত হয়।


doneলুপ থেকে প্রস্থান করার জন্য আপনি মান নির্ধারণ এবং পরীক্ষা করতে পারেন এমন অনেকগুলি উপায় রয়েছে ; উপরে আমি যা দেখি তা কোনও পসিক্স-সামঞ্জস্যপূর্ণ শেলটিতে কাজ করা উচিত।


doneপরিবর্তনশীল নাম হিসাবে ব্যবহার করা ঠিক আছে ? এটি একটি শেল কীওয়ার্ড ... কিন্ডা খুব কমই বিভ্রান্ত করছে।
— মাইকেল ডার্স্ট

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.