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

عبارة case ومطابقة الأنماط

نفّذ التفرع بوضوح استنادًا إلى قيم متعددة. تعلّم عبارة case، وأنماط glob، والمطابقة متعددة الأنماط، ولماذا تتفوق على سلاسل if-elif الطويلة.

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

لماذا case؟

عندما يمكن أن يأخذ متغير قيمًا متعددة، تصبح سلسلة طويلة من if/elif/elif غير واضحة. تطابق عبارة case قيمةً مع أنماط، وتكون أسهل قراءة بكثير.

البنية الأساسية

تختبر كتلة case قيمةً مقابل أنماط، وينتهي كل نمط بـ )، وينتهي جسمه بـ ;;. وتنتهي الكتلة بأكملها بـ esac.

case "$fruit" in
  apple) echo "red";;
  banana) echo "yellow";;
esac

الحالة الافتراضية

يطابق النمط *) أي شيء، ويعمل كحالة افتراضية شاملة مثل else.

case "$cmd" in
  start) echo "starting";;
  stop) echo "stopping";;
  *) echo "unknown command";;
esac

مطابقة أنماط متعددة

استخدم | لمطابقة عدة أنماط في فرع واحد.

case "$ans" in
  y|Y|yes) echo "Confirmed";;
  n|N|no) echo "Cancelled";;
esac

أنماط Glob

تستخدم الأنماط مطابقة shell globbing، لا التعبيرات النمطية: يطابق * أي سلسلة، ويطابق ? أي حرف مفرد، وتمثل [...] فئة أحرف.

case "$file" in
  *.txt) echo "text file";;
  *.jpg|*.png) echo "image";;
esac

نطاقات الأحرف

تطابق أنماط الأقواس نطاقات، وهو أمر مفيد للتجميع حسب الحرف أو الرقم الأول.

case "$ch" in
  [a-z]) echo "lowercase";;
  [0-9]) echo "digit";;
esac

قائمة بسيطة

تتألق case في البرامج النصية المعتمدة على القوائم، حيث يختار المستخدم خيارًا.

read -p "Choice: " opt
case "$opt" in
  1) backup;;
  2) restore;;
  *) echo "Invalid";;
esac

case مقابل if

استخدم if للشروط المنطقية المعقدة (النطاقات والمقارنات والمتغيرات المتعددة). واستخدم case عند التفرع بناءً على قيمة متغير واحد أو نمطه.

وضع القيمة بين علامتي اقتباس

ضع القيمة التي تختبرها ("$var") بين علامتي اقتباس، حتى تتم معالجة القيم الفارغة أو التي تحتوي على مسافات بأمان.

case "$input" in
  "") echo "empty";;
  *) echo "got: $input";;
esac

الاستمرار باستخدام ;;&

يدعم Bash استخدام ;;& لمواصلة اختبار الأنماط اللاحقة بعد حدوث تطابق، مما يتيح تنفيذ عدة فروع.

case "$f" in
  *.tar) echo "tar";;&
  *.gz) echo "gzip";;
esac

توجيه الوسائط

استخدام شائع في الواقع: وجّه التنفيذ بناءً على الوسيط الأول للبرنامج النصي لتطبيق أوامر فرعية مثل أداة CLI.

case "$1" in
  init) do_init;;
  build) do_build;;
  *) echo "usage: $0 {init|build}";;
esac

اختبار سريع

اختبر مدى فهمك.

مراجعة

تعلمتَ عبارة case: مطابقة قيمة مع أنماط glob، وإنهاء الفروع باستخدام ;;، ودمج الأنماط باستخدام |، واستخدام *) كحالة افتراضية، وتفضيل case على سلاسل if-elif الطويلة للتفرع النظيف حسب القيم وتوجيه الوسائط.

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

هل درس «عبارة case ومطابقة الأنماط» مجاني؟

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

ماذا ستتعلم في «عبارة case ومطابقة الأنماط»؟

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

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

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

كم من الوقت يستغرق درس «عبارة case ومطابقة الأنماط»؟

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

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

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

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

  1. تراكيب الحلقات (for، while)
  2. الدوال في Bash Scripts
  3. وسائط واختيارات Script ($@، $ of، getopts)
  4. عبارة case ومطابقة الأنماط
← العودة إلى Linux Command Line & Bash Scripting Mastery