الخروج من حلقة
يوفر bash أمرين مضمنين يمكن استخدامهما للتحكم في تدفق البرنامج داخل الحلقات. ينهي الأمر break حلقة على الفور ، ويستمر التحكم في البرنامج بالعبارة التالية التي تلي الحلقة. يؤدي الأمر "متابعة" إلى تخطي ما تبقى من الحلقة ، ويستأنف التحكم في البرنامج مع التكرار التالي للحلقة. نرى هنا إصدارًا من برنامج "while-menu" يشتمل على كلٍّ من "break" و "متابعة":
#! / بن / باش
# while-menu2: برنامج معلومات نظام يحركه القائمة DELAY = 3 # عدد الثواني لعرض النتائج
احيانا صحيح؛ فعل
واضح
قطة << - _EOF_
الرجاء التحديد:
1. عرض معلومات النظام
2. عرض مساحة القرص
3. عرض استخدام مساحة المنزل
0. قم بإنهاء
_EOF_
read -p "أدخل التحديد [0-3]>"
إذا [[$ REPLY = ~ ^ [0-3] $]] ؛ ثم إذا [[$ REPLY == 1]] ؛ من ثم
صدى وقت تشغيل "Hostname: $ HOSTNAME"
ينام $ DELAY
استمر
fi
إذا [[$ REPLY == 2]] ؛ ثم df -h
ينام $ DELAY
استمر
fi
إذا [[$ REPLY == 3]] ؛ من ثم
إذا [[$ (id -u) -eq 0]]؛ من ثم
صدى "Home Space Utilization (All Users)" du -sh / home / *
آخر
#! / بن / باش
# while-menu2: برنامج معلومات نظام يحركه القائمة DELAY = 3 # عدد الثواني لعرض النتائج
احيانا صحيح؛ فعل
واضح
قطة << - _EOF_
الرجاء التحديد:
1. عرض معلومات النظام
2. عرض مساحة القرص
3. عرض استخدام مساحة المنزل
0. قم بإنهاء
_EOF_
read -p "أدخل التحديد [0-3]>"
إذا [[$ REPLY = ~ ^ [0-3] $]] ؛ ثم إذا [[$ REPLY == 1]] ؛ من ثم
صدى وقت تشغيل "Hostname: $ HOSTNAME"
ينام $ DELAY
استمر
fi
إذا [[$ REPLY == 2]] ؛ ثم df -h
ينام $ DELAY
استمر
fi
إذا [[$ REPLY == 3]] ؛ من ثم
إذا [[$ (id -u) -eq 0]]؛ من ثم
صدى "Home Space Utilization (All Users)" du -sh / home / *
آخر
صدى "Home Space Utilization ($ USER)" du -sh $ HOME
fi
ينام $ DELAY
استمر
fi
إذا [[$ REPLY == 0]] ؛ ثم كسر
fi
آخر
صدى "إدخال غير صالح". ينام $ DELAY
انتهى فاي
صدى "تم إنهاء البرنامج".
صدى "Home Space Utilization ($ USER)" du -sh $ HOME
fi
ينام $ DELAY
استمر
fi
إذا [[$ REPLY == 0]] ؛ ثم كسر
fi
آخر
صدى "إدخال غير صالح". ينام $ DELAY
انتهى فاي
صدى "تم إنهاء البرنامج".
في هذا الإصدار من البرنامج النصي ، قمنا بإعداد ملف حلقة غير منتهية (واحد لا ينتهي من تلقاء نفسه) باستخدام صحيح الأمر لتزويد حالة الخروج إلى في حين. منذ صحيح ستخرج دائمًا بحالة خروج صفر ، ولن تنتهي الحلقة أبدًا. هذا أسلوب كتابة مألوف بشكل مدهش. نظرًا لأن الحلقة لن تنتهي أبدًا من تلقاء نفسها ، فالأمر متروك للبرنامج لتوفير طريقة ما للخروج من الحلقة عندما يحين الوقت. في هذا البرنامج النصي ، فإن ملف استراحة يتم استخدام الأمر للخروج من الحلقة عند اختيار الاختيار "0". ال استمر تم تضمين الأمر في نهاية خيارات البرنامج النصي الأخرى للسماح بتنفيذ أكثر كفاءة. باستخدام استمر، سيتخطى النص البرمجي التعليمات البرمجية غير الضرورية عند تحديد التحديد. على سبيل المثال ، إذا تم اختيار التحديد "1" وتحديده ، فلا يوجد سبب لاختبار التحديدات الأخرى.