حلقة 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 أبدًا، فستستمر حلقتك في العمل إلى الأبد.
تأكد دائمًا من أن شيئًا ما داخل الحلقة يغير الشرط في النهاية، مثل زيادة عداد أو تحديث متغير بناءً على إدخال المستخدم.
التحدي
سهلأنشئ نصاً برمجياً لـ shell يسمى 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.
ورقة مرجعية
تستمر حلقة 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تأكد دائماً من وجود شيء داخل الحلقة يغير الشرط في النهاية لتجنب الحلقات اللانهائية.
جرّب بنفسك
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس الأساسيات
7محتوى الملف
Head و Tailعد الكلمات (Word Count)أمر Sortأمر Uniqueأساسيات GrepGrep مع الخياراتملخص - محقق النصوص13أساسيات برمجة Shell
ما هو Shell Script؟إنشاء وتشغيل Scriptالمتغيرات في الـ Scriptsمدخلات المستخدم في الـ Scriptsجملة If الشرطيةحلقة For التكراريةحلقة While التكراريةمراجعة - مخمن الأرقام2التنقل
عرض مسار المجلد الحاليعرض الملفاتتغيير المجلدالمسارات المطلقة مقابل المسارات النسبيةمجلد المنزل ومجلد الجذرخلاصة - حدد مسارك8إعادة التوجيه
المخرجات القياسيةالكتابة فوق ملفالإضافة إلى ملفالمدخلات القياسيةالخطأ القياسيمراجعة - بناء سجل الأحداث11الأذونات
فهم الأذوناتقراءة الأذوناتChmod باستخدام الأرقامChmod باستخدام الرموزملكية الملفاتملخص - إحكام الحماية14مشروع سكربت النسخ الاحتياطي
نظرة عامة على المشروعالحصول على مسار المصدر