Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

حلقة 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 أو تحديث متغيّر استنادًا إلى إدخال المستخدم.

challenge icon

التحدي

سهل

أنشئ برنامجًا نصيًا للصدفة باسم counter.sh يستخدم حلقة while لطباعة الأرقام من 1 إلى 4.

يجب أن يقوم برنامجك بما يلي:

  1. يبدأ بسطر shebang (#!/bin/bash)
  2. ينشئ متغيرًا باسم num بالقيمة الابتدائية 1
  3. يستخدم حلقة while تستمر ما دام num أصغر من أو يساوي 4
  4. داخل الحلقة، يطبع الرقم الحالي بالتنسيق: Number: [num]
  5. يزيد قيمة num بمقدار 1 بعد كل تكرار باستخدام $((num + 1))

اجعل البرنامج النصي قابلًا للتنفيذ وشغّله. يجب أن يكون الناتج:

Number: 1
Number: 2
Number: 3
Number: 4

تلميح: استخدم -le لمقارنة "less than or equal to". تذكّر زيادة قيمة العداد داخل الحلقة باستخدام num=$((num + 1)) لتجنب حلقة لا نهائية. أنهِ حلقة while باستخدام done.

جرّب بنفسك

الطرفية
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس الأساسيات

تدرّب بنفسك: Playground لـ Terminal