উত্তর:
আপনি some_command
আপনার পরীক্ষার শর্ত হিসাবে ব্যবহার করতে পারেন ।
while ! some_command; do sleep 1; done
শর্তটি ততক্ষণ ততক্ষণ থাকবে যতক্ষণ some_command
ত্রুটি সহ প্রস্থান করা হবে its
বা যদি আপনি অতিরিক্ত চেক করতে চান তবে আরও ভার্জিক উপায়:
while ! some_command
do
# add more if desired
sleep 1
done
while ! some_command; do several; commands; sleep 1; done
এই কি until
লুপ জন্য:
until some_command
do sleep 1
done
এটি একটি while
লুপের যৌক্তিক অবহেলা ।
until
লুপuntil
লুপ একটানা এক সিদ্ধান্ত নেবে | যৌগ-তালিকা দীর্ঘ আরেকটি যত যৌগ-তালিকা একটি নন-জিরো প্রস্থান অবস্থা হয়েছে।
লুপের বিন্যাসটি নিম্নরূপ:
যৌগিক তালিকা -১ অবধি যৌগিক তালিকা -2 করুন সম্পন্ন
until
কমান্ড সমাপ্ত হবে। অন্যথায়, যৌগিক তালিকা -২ সম্পাদন করা হবে, এবং প্রক্রিয়া পুনরাবৃত্তি হবে।আপনি ঠিক করতে পারেন:
false
while [ $? -ne 0 ] ; do
sleep 1
some_command
done
এটির অসুবিধা যদিও এটি সর্বদা এক সেকেন্ড আগে ঘুমায়
আপনি যদি 0 দিয়ে বেরিয়ে আসতে কয়েকটি কমান্ডের বাইরে বেরিয়ে আসতে সক্ষম হন তবে আপনি এটি করতে পারেন:
while true; do
if [ some_command ] ; then break ; fi
if [ some_other_command ] ; then break ; fi
sleep 1
done
যা অবশ্যই জন্য কাজ করে some_command
[
এবং ]
কমান্ড প্রায়।
আমরাও while ! ...
না until ...
সিস্টেমগুলি POSIX.1-2001 পূর্বে তাদের শেল পরিবেশ স্থগিত কাজ করে। এটি অবশ্য করে।
while :; do
if some command; then
break
fi
sleep 1
done
আপনার যদি মোট পোর্টেবিলিটিটির প্রয়োজন না হয় তবে আপনি কেন শেল স্ক্রিপ্ট লিখছেন? পার্ল হয় আরো ব্যাশ চেয়ে প্রাপ্তিসাধ্য হওয়ার সম্ভাবনা।
sleep 1 while 0 != system qw(some command);
(উপরে হিসাবে, sleep
কমান্ড ব্যর্থ হলে কেবলমাত্র কার্যকর করা হয়))