حلقة While التكرارية
جزء من قسم الأساسيات في رحلة Terminal على Coddy. الدرس 72 من 82.
تُعد حلقة for رائعة عندما تعرف بالضبط العناصر التي تريد التكرار عبرها. ولكن ماذا لو أردت الاستمرار في التكرار حتى يتغير شرط معين؟ هنا يأتي دور حلقة while.
تستمر حلقة while في العمل ما دام شرطها يظل صحيحًا. إليك البنية الأساسية:
#!/bin/bash
count=1
while [ $count -le 5 ]; do
echo "Count: $count"
count=$((count + 1))
doneيطبع هذا البرنامج النصي الأرقام من 1 إلى 5.
تتحقق الحلقة مما إذا كان count أقل من أو يساوي 5. إذا كان ذلك صحيحًا، فإنها تنفّذ جسم الحلقة، وتزيد counter باستخدام $((...)) لإجراء العمليات الحسابية، ثم تتحقق مرة أخرى.
بمجرد أن يصل count إلى 6، يصبح الشرط خاطئًا وتتوقف الحلقة.
تُعد حلقات while مثالية عندما لا تعرف مسبقًا عدد التكرارات التي تحتاج إليها. على سبيل المثال، قد تستمر في طلب input حتى يكتب المستخدم "quit":
#!/bin/bash
input=""
while [ "$input" != "quit" ]; do
read -p "Enter command (quit to exit): " input
echo "You entered: $input"
doneكن حذرًا مع حلقات while. إذا لم يصبح الشرط خاطئًا أبدًا، فستستمر حلقتك إلى ما لا نهاية.
تأكّد دائمًا من أن شيئًا ما داخل الحلقة يغيّر الشرط في النهاية، مثل زيادة counter أو تحديث متغيّر استنادًا إلى إدخال المستخدم.
التحدي
سهلأنشئ برنامجًا نصيًا للصدفة باسم counter.sh يستخدم حلقة while لطباعة الأرقام من 1 إلى 4.
يجب أن يقوم برنامجك بما يلي:
- يبدأ بسطر shebang (
#!/bin/bash) - ينشئ متغيرًا باسم
numبالقيمة الابتدائية1 - يستخدم حلقة while تستمر ما دام
numأصغر من أو يساوي 4 - داخل الحلقة، يطبع الرقم الحالي بالتنسيق:
Number: [num] - يزيد قيمة
numبمقدار 1 بعد كل تكرار باستخدام$((num + 1))
اجعل البرنامج النصي قابلًا للتنفيذ وشغّله. يجب أن يكون الناتج:
Number: 1
Number: 2
Number: 3
Number: 4تلميح: استخدم
-leلمقارنة "less than or equal to". تذكّر زيادة قيمة العداد داخل الحلقة باستخدامnum=$((num + 1))لتجنب حلقة لا نهائية. أنهِ حلقة while باستخدامdone.
جرّب بنفسك
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس الأساسيات
7محتوى الملف
Head و Tailعد الكلمات (Word Count)أمر Sortأمر Uniqueأساسيات GrepGrep مع الخياراتملخص - محقق النصوص13أساسيات برمجة Shell
ما هو Shell Script؟إنشاء وتشغيل Scriptالمتغيرات في الـ Scriptsمدخلات المستخدم في الـ Scriptsجملة If الشرطيةحلقة For التكراريةحلقة While التكراريةمراجعة - مخمن الأرقام2التنقل
عرض مسار المجلد الحاليعرض الملفاتتغيير المجلدالمسارات المطلقة مقابل المسارات النسبيةمجلد المنزل ومجلد الجذرخلاصة - حدد مسارك8إعادة التوجيه
المخرجات القياسيةالكتابة فوق ملفالإضافة إلى ملفالمدخلات القياسيةالخطأ القياسيمراجعة - بناء سجل الأحداث11الأذونات
فهم الأذوناتقراءة الأذوناتChmod باستخدام الأرقامChmod باستخدام الرموزملكية الملفاتملخص - إحكام الحماية14مشروع سكربت النسخ الاحتياطي
نظرة عامة على المشروعالحصول على مسار المصدرتدرّب بنفسك: Playground لـ Terminal