حلقة 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، يصبح الشرط خاطئًا وتتوقف الحلقة.
تكون حلقات while مثالية عندما لا تعرف مسبقًا عدد التكرارات التي تحتاج إليها. على سبيل المثال، قد تستمر في طلب إدخال حتى يكتب المستخدم "quit":
#!/bin/bash
input=""
while [ "$input" != "quit" ]; do
read -p "Enter command (quit to exit): " input
echo "You entered: $input"
doneكن حذرًا عند استخدام حلقات while. إذا لم يصبح الشرط خطأً أبدًا، فستستمر الحلقة في العمل إلى الأبد.
تأكد دائمًا من أن شيئًا ما داخل الحلقة يغيّر الشرط في نهاية المطاف، مثل زيادة عدّاد أو تحديث متغير بناءً على إدخال المستخدم.
التحدي
سهلأنشئ سكربت 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للمقارنة «أقل من أو يساوي». تذكّر زيادة العداد داخل الحلقة باستخدام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