ذكري المظهر

باش بينما الحلقة

Le360.ma • مدرسة 36:رحلة جماعية إلى روسيا I El Othmani se prépare pour voyager en Russie.

Le360.ma • مدرسة 36:رحلة جماعية إلى روسيا I El Othmani se prépare pour voyager en Russie.

جدول المحتويات:

Anonim

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

في لغات البرمجة النصية مثل Bash ، تعد الحلقات مفيدة لأتمتة المهام المتكررة. هناك 3 تصميمات حلقة أساسية في البرمجة النصية Bash ، للحلقة ، أثناء الحلقة ، وحتى الحلقة.

يشرح هذا البرنامج التعليمي أساسيات بينما حلقات في Bash وكذلك فاصل واستمرار العبارات لتغيير تدفق حلقة.

باش بينما حلقة

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

تأخذ حلقة Bash أثناء النموذج التالي:

while do done

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

في المثال أدناه ، في كل تكرار ، تطبع الحلقة القيمة الحالية للمتغير i وتزيد المتغير بواحد.

i=0 while do echo Number: $i ((i++)) done

تتكرر حلقة الثلاثاء ما دمت أقل من أو تساوي اثنين. وسوف تنتج الإخراج التالي:

Number: 0 Number: 1 Number: 2

لانهائي بينما حلقة

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

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

while: do echo "Press to exit." sleep 1 done while: do echo "Press to exit." sleep 1 done

في حين أن حلقة أعلاه سوف تعمل إلى أجل غير مسمى. يمكنك إنهاء الحلقة بضغط CTRL+C

هنا مكافئ سطر واحد:

while:; do echo 'Press to exit.'; sleep 1; done while:; do echo 'Press to exit.'; sleep 1; done

قراءة ملف الخط حسب الخط

واحدة من الاستخدامات الأكثر شيوعًا للحلقة أثناء قراءة ملف أو دفق بيانات أو سطر متغير.

في المثال التالي ، ستقوم حلقة حينها بقراءة الملف /etc/passwd بسطر وطباعة كل سطر.

file=/etc/passwd while read -r line; do echo $line done < "$file"

بدلاً من التحكم في حلقة الوقت بشرط ، فإننا نستخدم إعادة توجيه الإدخال ( < "$file" ) لتمرير ملف إلى read وهو الأمر الذي يتحكم في الحلقة. سيتم تشغيل حلقة حين حتى يتم قراءة السطر الأخير.

عند قراءة ملف سطر بسطر ، استخدم دائمًا read مع الخيار -r لمنع الشرطة المائلة العكسية من العمل كحرف هروب.

بشكل افتراضي ، يقوم أمر read بتفعيل أحرف المسافات البادئة الأمامية / الزائدة (المسافات وعلامات التبويب). استخدم IFS= الخيار قبل أمر read لمنع هذا السلوك

file=/etc/passwd while IFS= read -r line; do echo $line done < "$file"

كسر ومتابعة البيانات

يمكن استخدام عبارات الفاصل والمتابعة للتحكم في تنفيذ حلقة التكرار.

بيان استراحة

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

في المثال التالي ، سيتم مقاطعة تنفيذ الحلقة بمجرد أن يساوي العنصر التكراري الحالي 2 .

i=0 while do echo "Number: $i" ((i++)) if]; then break fi done echo 'All Done!'

Number: 0 Number: 1 All Done!

متابعة البيان

العبارة متابعة إنهاء التكرار الحالي من حلقة وتمرير التحكم في البرنامج إلى التكرار التالي من الحلقة.

في ما يلي أدناه ، بمجرد أن يساوي العنصر التكراري الحالي 2 فإن بيان المتابعة سوف يؤدي إلى عودة التنفيذ إلى بداية الحلقة ومتابعة التكرار التالي.

i=0 while do ((i++)) if]; then continue fi echo "Number: $i" done echo 'All Done!'

Number: 1 Number: 3 Number: 4 Number: 5 All Done!

استنتاج

الآن يجب أن يكون لديك فهم جيد لكيفية استخدام bash أثناء الحلقة.

باش حلقة المحطة