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. إذا كان ذلك صحيحاً، فإنها تقوم بتشغيل جسم الحلقة، وتزيد العداد باستخدام $((...)) للعمليات الحسابية، ثم تتحقق مرة أخرى.

بمجرد أن يصل count إلى 6، يصبح الشرط false ويتوقف التكرار.

تُعد حلقات While مثالية عندما لا تعرف مسبقًا عدد التكرارات التي تحتاج إليها. على سبيل المثال، قد تستمر في طلب الإدخال حتى يكتب المستخدم "quit":

#!/bin/bash
input=""
while [ "$input" != "quit" ]; do
    read -p "Enter command (quit to exit): " input
    echo "You entered: $input"
done

كن حذرًا مع حلقات while. إذا لم يصبح الشرط false أبدًا، فستستمر حلقتك في العمل إلى الأبد.

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

challenge icon

التحدي

سهل

أنشئ نصاً برمجياً لـ shell يسمى 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.

ورقة مرجعية

تستمر حلقة while في العمل طالما ظل شرطها صحيحاً:

#!/bin/bash
count=1
while [ $count -le 5 ]; do
    echo "Count: $count"
    count=$((count + 1))
done

تتحقق الحلقة من الشرط قبل كل تكرار. استخدم $((...)) للعمليات الحسابية لزيادة العدادات.

تعد حلقات While مفيدة عندما لا تعرف مسبقاً عدد التكرارات التي تحتاجها، مثل انتظار إدخال محدد من المستخدم:

#!/bin/bash
input=""
while [ "$input" != "quit" ]; do
    read -p "Enter command (quit to exit): " input
    echo "You entered: $input"
done

تأكد دائماً من وجود شيء داخل الحلقة يغير الشرط في النهاية لتجنب الحلقات اللانهائية.

جرّب بنفسك

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

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

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