عبارة 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";;
esaccase مقابل 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 يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- تراكيب الحلقات (for، while)
- الدوال في Bash Scripts
- وسائط واختيارات Script ($@، $ of، getopts)
- عبارة case ومطابقة الأنماط