logo

باش أثناء الحلقة

لقد أوضحنا في هذا الموضوع كيفية استخدام عبارة while Loop في Bash Script.

ال باش أثناء الحلقة يمكن تعريفه على أنه بيان تدفق التحكم الذي يسمح بتنفيذ مجموعة الأوامر المحددة بشكل متكرر طالما تم تقييم الشرط المطبق على أنه صحيح. على سبيل المثال، يمكننا إما تشغيل أمر الصدى عدة مرات أو مجرد قراءة ملف نصي سطرًا تلو الآخر ومعالجة النتيجة باستخدام حلقة while في Bash.

بناء جملة Bash while Loop

Bash whileحلقة لها التنسيق التالي:

عفوا المفاهيم في جافا
 while [ expression ]; do commands; multiple commands; done 

لا ينطبق بناء الجملة أعلاه إلا إذا كان التعبير يحتوي على شرط واحد.

إذا كان هناك شروط متعددة يجب تضمينها في التعبير، فسيكون بناء جملة الحلقة على النحو التالي:

 while [ expressions ]; do commands; multiple commands; done 

يمكن تعريف بناء جملة الحلقة الواحدة على النحو التالي:

 while [ condition ]; do commands; done while control-command; do Commands; done 

هناك بعض النقاط الرئيسية في عبارة 'أثناء الحلقة':

  • يتم التحقق من الحالة قبل تنفيذ الأوامر.
  • الحلقة 'أثناء' قادرة أيضًا على أداء جميع الأعمال التي يمكن أن تقوم بها 'الحلقة'.
  • يتم تنفيذ الأوامر بين 'do' و'done' بشكل متكرر طالما تم تقييم الشرط على أنه صحيح.
  • يمكن أن تكون الوسائط الخاصة بالحلقة 'while' تعبيرًا منطقيًا.

كيف تعمل

الحلقة while هي حلقة دخول مقيدة. وهذا يعني أنه يتم التحقق من الشرط قبل تنفيذ أوامر الحلقة أثناء ذلك. إذا تم تقييم الشرط على أنه صحيح، فسيتم تنفيذ مجموعة الأوامر التي تتبع هذا الشرط. وبخلاف ذلك، يتم إنهاء الحلقة، ويتم منح التحكم في البرنامج إلى الأمر الآخر الذي يتبع عبارة 'done'.

أمثلة على Bash while Loop

فيما يلي بعض الأمثلة على bash while Loop:

أثناء الحلقة مع شرط واحد

في هذا المثال، يتم استخدام حلقة while مع شرط واحد في التعبير. هذا هو المثال الأساسي للحلقة التي ستطبع سلسلة من الأرقام حسب إدخال المستخدم:

مثال

 #!/bin/bash #Script to get specified numbers read -p 'Enter starting number: ' snum read -p 'Enter ending number: ' enum while [[ $snum -le $enum ]]; do echo $snum ((snum++)) done echo 'This is the sequence that you wanted.' 

انتاج |

باش أثناء الحلقة

أثناء التكرار مع شروط متعددة

فيما يلي مثال على حلقة while مع شروط متعددة في التعبير:

مثال

 #!/bin/bash #Script to get specified numbers read -p 'Enter starting number: ' snum read -p 'Enter ending number: ' enum while [[ $snum -lt $enum || $snum == $enum ]]; do echo $snum ((snum++)) done echo 'This is the sequence that you wanted.' 

انتاج |

جافا تحويل السلسلة إلى عدد صحيح
باش أثناء الحلقة

لانهائية في حين حلقة

الحلقة اللانهائية هي حلقة ليس لها نهاية أو نهاية. إذا تم تقييم الشرط دائمًا على أنه صحيح، فإنه ينشئ حلقة لا نهائية. سيتم تنفيذ الحلقة بشكل مستمر حتى يتم إيقافها بالقوة باستخدام CTRL+C :

مثال

 #!/bin/bash #An infinite while loop while : do echo 'Welcome to Javatpoint.' done 

يمكننا أيضًا كتابة البرنامج النصي أعلاه في سطر واحد على النحو التالي:

 #!/bin/bash #An infinite while loop while :; do echo 'Welcome to Javatpoint.'; done 

انتاج |

باش أثناء الحلقة

هنا، استخدمنا الأمر المضمن (:) والذي يُرجع دائمًا صحيحًا. يمكننا أيضًا استخدام الأمر المدمج true لإنشاء حلقة لا نهائية كما هو موضح أدناه:

مثال

 #!/bin/bash #An infinite while loop while true do echo 'Welcome to Javatpoint' done 

سيوفر برنامج bash النصي هذا أيضًا نفس الإخراج مثل البرنامج النصي اللانهائي أعلاه.

ملاحظة: يمكن إنهاء الحلقات اللانهائية باستخدام CTRL+C أو عن طريق إضافة بعض المخرجات الشرطية داخل البرنامج النصي.

أثناء التكرار مع بيان الاستراحة

يمكن استخدام عبارة Break لإيقاف الحلقة وفقًا للشرط المطبق. على سبيل المثال:

مثال

 #!/bin/bash #While Loop Example with a Break Statement echo 'Countdown for Website Launching...' i=10 while [ $i -ge 1 ] do if [ $i == 2 ] then echo 'Mission Aborted, Some Technical Error Found.' break fi echo '$i' (( i-- )) done 

انتاج |

تعدد الإرسال

وفقًا للبرنامج النصي، تم تعيين الحلقة للتكرار لمدة عشر مرات. ولكن هناك شرط بعد ثماني مرات من التكرار سيؤدي إلى كسر التكرار وإنهاء الحلقة. سيتم عرض الإخراج التالي بعد تنفيذ البرنامج النصي.

باش أثناء الحلقة

أثناء التكرار مع بيان المتابعة

يمكن استخدام عبارة continue لتخطي التكرار لحالة معينة داخل الحلقة while.

مثال

 #!/bin/bash #While Loop Example with a Continue Statement i=0 while [ $i -le 10 ] do ((i++)) if [[ '$i' == 5 ]]; then continue fi echo 'Current Number : $i' done echo 'Skipped number 5 using Continue Statement.' 

انتاج |

باش أثناء الحلقة

أثناء التكرار باستخدام نمط C

يمكننا أيضًا كتابة حلقة while في برنامج bash النصي بشكل مشابه للحلقة while في لغة البرمجة C.

مثال

 #!/bin/bash #While loop example in C style i=1 while((i <= 10)) do echo $i let i++ done < pre> <p> <strong>Output</strong> </p> <img src="//techcodeview.com/img/bash-tutorial/46/bash-while-loop-6.webp" alt="Bash While Loop"> <h2>Conclusion</h2> <p>In this topic, we discussed how to use while loop statement in Bash to perform specific tasks.</p> <hr></=>