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


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.