0Pricing
Linux Command Line & Bash Scripting Mastery · درس

العبارات الشرطية (if، else، elif)

طبّقوا منطق اتخاذ القرارات في scripts باستخدام عبارات 'if' و'else' و'elif' لإضافة سلوك ديناميكي.

العبارات الشرطية (if، else، elif) درس مجاني في Linux Command Line & Bash Scripting Mastery على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Linux Command Line & Bash Scripting Mastery، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Linux Command Line & Bash Scripting Mastery 4 دروس في المجموع.

أهمية الجمل الشرطية

في برمجة Bash، قد تحتاجون أحيانًا إلى أن يتخذ النص البرمجي قرارات. تخيلوا نصًا برمجيًا ينفذ إجراءات مختلفة استنادًا إلى إدخال المستخدم أو إلى وجود ملف.

هنا تأتي الجمل الشرطية! فهي تتيح للنص البرمجي تنفيذ كتل تعليمات محددة فقط عند تحقق شروط معينة.

جملة 'if' الأساسية

أبسط بنية شرطية هي جملة if. فهي تتحقق من شرط، وإذا كان صحيحًا، تُنفَّذ كتلة من الأوامر.

الصيغة هي:

  • if [ condition ]
  • then
  • # commands if condition is true
  • fi (تحدد نهاية كتلة if)

أول نص برمجي باستخدام 'if'

لنرَ جملة if أساسية أثناء العمل. يتحقق هذا النص البرمجي مما إذا كان عدد أكبر من 5.

جرّبوا تغيير قيمة NUMBER ثم تشغيل النص البرمجي!

#!/bin/bash

NUMBER=10

if [ $NUMBER -gt 5 ]
then
  echo "The number $NUMBER is greater than 5."
fi

echo "Script finished."

إنشاء شروط الاختبار

يُعد الجزء [ condition ] محوريًا. فهو في الواقع أمر يُسمى test أو الاسم المستعار له [.

يمكنكم أيضًا استخدام [[ condition ]]، وهي صيغة أكثر تقدمًا توفر بناءً نحويًا أفضل وتمنع مشكلات تقسيم الكلمات. أما للمبتدئين، فالصيغة [ ] شائعة.

  • احرصوا دائمًا على وضع مسافات حول الأقواس والعوامل.
  • ينبغي عادةً وضع المتغيرات داخل [ ] بين علامتي اقتباس (مثلًا "$VARIABLE") لتجنب الأخطاء الناتجة عن القيم الفارغة أو متعددة الكلمات.

مقارنة الأرقام

عند مقارنة الأرقام في Bash، تستخدمون عوامل محددة:

  • -eq: يساوي
  • -ne: لا يساوي
  • -gt: أكبر من
  • -ge: أكبر من أو يساوي
  • -lt: أصغر من
  • -le: أصغر من أو يساوي

تُستخدم هذه العوامل داخل [ ] أو [[ ]].

مقارنة السلاسل النصية

تُستخدم عوامل مختلفة لمقارنة النصوص (السلاسل النصية):

  • == أو =: يساوي (يُفضّل استخدام == مع [[ ]])
  • !=: لا يساوي
  • -z "$STRING": صحيح إذا كانت السلسلة فارغة (طولها يساوي صفرًا)
  • -n "$STRING": صحيح إذا لم تكن السلسلة فارغة (طولها لا يساوي صفرًا)

تذكروا وضع متغيرات السلاسل النصية بين علامتي اقتباس!

جملة 'if-else'

ماذا لو أردتم تنفيذ كتلة من التعليمات إذا كان الشرط صحيحًا، وكتلة مختلفة إذا كان خاطئًا؟

هذا هو الغرض من if-else! فهي توفر مسارًا بديلًا للنص البرمجي.

الصيغة هي:

  • if [ condition ]
  • then
  • # commands if true
  • else
  • # commands if false
  • fi

'if-else' أثناء العمل

يطلب هذا النص البرمجي منكم إدخال عدد، ثم يخبركم بما إذا كان موجبًا أم لا. ويستخدم بنية if-else.

شغّلوه عدة مرات باستخدام مدخلات مختلفة (مثل 5 و-3 و0).

#!/bin/bash

read -p "Enter a number: " NUM

if [ "$NUM" -gt 0 ]
then
  echo "$NUM is a positive number."
else
  echo "$NUM is not a positive number (it's zero or negative)."
fi

خيارات متعددة باستخدام 'elif'

عندما يكون لديكم أكثر من نتيجتين محتملتين، يمكنكم استخدام elif (اختصارًا لـ "else if"). يتيح لكم ذلك التحقق من شروط متعددة بالتسلسل.

الصيغة هي:

  • if [ condition1 ]
  • then
  • # commands if condition1 is true
  • elif [ condition2 ]
  • then
  • # commands if condition1 is false AND condition2 is true
  • else
  • # commands if all conditions are false
  • fi

منطق اتخاذ القرارات المتقدم

لننشئ نصًا برمجيًا يصنّف عمر المستخدم باستخدام if وelif وelse. يتعامل هذا النص مع سيناريوهات متعددة.

لاحظوا استخدام && لدمج الشروط داخل [[ ]] (و AND المنطقي).

#!/bin/bash

read -p "Enter your age: " AGE

if [[ $AGE -lt 13 ]]
then
  echo "You are a child."
elif [[ $AGE -ge 13 && $AGE -lt 18 ]]
then
  echo "You are a teenager."
elif [[ $AGE -ge 18 && $AGE -lt 65 ]]
then
  echo "You are an adult."
else
  echo "You are a senior citizen."
fi

التحقق الشرطي

تأملوا نص Bash البرمجي التالي:

#!/bin/bash

SCORE=85

if [ $SCORE -lt 60 ]
then
  echo "Fail"
elif [ $SCORE -lt 80 ]
then
  echo "Pass"
else
  echo "Distinction"
fi

ملخص الجمل الشرطية

أحسنتم! لقد تعلمتم كيفية جعل نصوص Bash البرمجية أكثر ذكاءً باستخدام الجمل الشرطية.

  • تنفذ جملة if التعليمات إذا كان الشرط صحيحًا.
  • يوفر else مسارًا بديلًا إذا كان شرط if خاطئًا.
  • يتيح elif التحقق من شروط متعددة بالتسلسل.
  • تذكروا استخدام العوامل المناسبة (-eq للأرقام و== للسلاسل النصية)، وإغلاق كتل if دائمًا باستخدام fi.

تُعد هذه الأدوات أساسية لإنشاء نصوص برمجية ديناميكية وتفاعلية!

الأسئلة الشائعة

هل درس «العبارات الشرطية (if، else، elif)» مجاني؟

نعم — نص درس «العبارات الشرطية (if، else، elif)» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Linux Command Line & Bash Scripting Mastery، انتقل إلى CoddyKit PRO. تتضمن دورة Linux Command Line & Bash Scripting Mastery 4 دروس في المجموع.

ماذا ستتعلم في «العبارات الشرطية (if، else، elif)»؟

طبّقوا منطق اتخاذ القرارات في scripts باستخدام عبارات 'if' و'else' و'elif' لإضافة سلوك ديناميكي. تتمرن على Linux Command Line & Bash Scripting Mastery مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Linux Command Line & Bash Scripting Mastery؟

لا تُشترط خبرة سابقة. Linux Command Line & Bash Scripting Mastery على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.

كم من الوقت يستغرق درس «العبارات الشرطية (if، else، elif)»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Linux Command Line & Bash Scripting Mastery هذا؟

نعم. كل درس في Linux Command Line & Bash Scripting Mastery يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. أول Bash Script وسطر Shebang
  2. المتغيرات وإدخال المستخدم
  3. العبارات الشرطية (if، else، elif)
  4. التعامل مع المصفوفات في Bash
← العودة إلى Linux Command Line & Bash Scripting Mastery