0Pricing
Linux Server Deployment & SSH Mastery · درس

الدوال والوسائط والبرامج النصية القابلة لإعادة الاستخدام

اجعل برامج Bash النصية modular وقابلة للصيانة: عرّف الدوال، ومرّر وسائط سطر الأوامر وتحقق منها، وأعد القيم، ونظّم البرامج النصية لإعادة استخدامها في مهام أتمتة الخوادم المتعددة.

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

من البرامج النصية إلى الأدوات

يمكنك كتابة البرامج النصية وأتمتة المهام ومعالجة الأخطاء. والخطوة التالية هي جعل البرامج النصية قابلة لإعادة الاستخدام: تنظيم الشيفرة في دوال تقبل الوسائط، بحيث يخدم البرنامج النصي الواحد حالات متعددة.

وهكذا تتحول البرامج النصية المؤقتة إلى أدوات إدارية حقيقية.

تعريف دالة

تجمع دالة Bash الأوامر تحت اسم واحد. عرّفها مرة واحدة واستدعها مرات عديدة. ويكون جسم الدالة بين قوسين معقوفين.

greet() {
  echo 'Hello from the function!'
}

greet

تمرير الوسائط إلى الدوال

تستقبل الدوال الوسائط موضعيًا: $1 و$2 وما إلى ذلك. ويمثل $@ جميع الوسائط، بينما يمثل $# عددها.

greet() {
  echo "Hello, $1! You are $2 years old."
}

greet Alice 30

وسائط مستوى البرنامج النصي

تعمل المتغيرات الموضعية نفسها مع البرنامج النصي بأكمله. شغّل ./deploy.sh staging v2، وسيقرأ البرنامج النصي $1 على أنه 'staging' و$2 على أنه 'v2'.

#!/bin/bash
ENV=$1
VERSION=$2
echo "Deploying $VERSION to $ENV"

التحقق من صحة الوسائط

تتحقق الأدوات المتينة من مدخلاتها. تحقّق من العدد المتوقع للوسائط، واخرج مع عرض رسالة الاستخدام إذا كانت مفقودة.

if [ $# -lt 2 ]; then
  echo "Usage: $0 <env> <version>"
  exit 1
fi

إرجاع الحالة من الدوال

تعيد الدوال حالة خروج عبر return (حيث 0 = نجاح). ويتحقق المستدعي منها باستخدام $? أو مباشرةً داخل if.

is_root() {
  [ "$(id -u)" -eq 0 ]
}

if is_root; then echo 'root'; else echo 'not root'; fi

إرجاع البيانات من الدوال

لإرجاع بيانات فعلية (وليس الحالة فقط)، اعرضها باستخدام echo والتقطها باستبدال الأوامر. ويُسنِد المستدعي الناتج إلى متغير.

timestamp() {
  date +%Y%m%d_%H%M%S
}

NOW=$(timestamp)
echo "Backup name: backup_$NOW"

المتغيرات المحلية

تكون متغيرات Bash عامة افتراضيًا، ما يسبب أخطاءً بين الدوال. صرّح بالمتغيرات الداخلية للدالة باستخدام local لعزلها.

add() {
  local result=$(( $1 + $2 ))
  echo $result
}

echo "Sum: $(add 3 4)"

القيم الافتراضية والخيارات المسماة

وفّر قيمًا افتراضية مناسبة باستخدام توسيع المعاملات، وحلّل الخيارات لإنشاء أدوات أسهل استخدامًا.

  • ${1:-default} — استخدم 'default' إذا لم يكن $1 معيّنًا
  • getopts — حلّل الخيارات بالتنسيق -v و-f file
ENV=${1:-staging}
echo "Target environment: $ENV"

تحميل مكتبة من الدوال

ضع الدوال المشتركة في ملف خاص بها، ثم استخدم source لتحميله من عدة برامج نصية. ويؤدي ذلك إلى تجنب نسخ المساعدات ولصقها في كل مكان.

# in lib.sh: define log(), is_root(), etc.
source ./lib.sh
log 'Starting deployment'

أفضل الممارسات

اكتب برامج نصية سهلة الصيانة:

  • قسّم المنطق إلى دوال صغيرة مُسمّاة
  • تحقق دائمًا من الوسائط واطبع تعليمات الاستخدام
  • استخدم local لمتغيرات الدوال
  • شارك المساعدات عبر ملف مكتبة يتم تحميله

تحقق سريع

اختبر معرفتك بدوال Bash.

مراجعة

يمكنك الآن إنشاء أدوات Bash قابلة لإعادة الاستخدام:

  • عرّف الدوال واستدعها بشكل متكرر
  • مرّر الوسائط وتحقق منها ($1 و$@ و$#)
  • أعِد الحالة باستخدام return والبيانات عبر echo + استبدال الأوامر
  • استخدم المتغيرات local والمكتبات المشتركة عبر source

تحوّل هذه الأنماط البرامج النصية لمهمة واحدة إلى مجموعة أدوات أتمتة سهلة الصيانة.

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

هل درس «الدوال والوسائط والبرامج النصية القابلة لإعادة الاستخدام» مجاني؟

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

ماذا ستتعلم في «الدوال والوسائط والبرامج النصية القابلة لإعادة الاستخدام»؟

اجعل برامج Bash النصية modular وقابلة للصيانة: عرّف الدوال، ومرّر وسائط سطر الأوامر وتحقق منها، وأعد القيم، ونظّم البرامج النصية لإعادة استخدامها في مهام أتمتة الخوادم المتعددة. تتمرن على Linux Server Deployment & SSH Mastery مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Linux Server Deployment & SSH Mastery؟

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

كم من الوقت يستغرق درس «الدوال والوسائط والبرامج النصية القابلة لإعادة الاستخدام»؟

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

هل يمكنني كتابة وتشغيل أكواد في درس Linux Server Deployment & SSH Mastery هذا؟

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

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

  1. مقدمة إلى برمجة Bash النصية
  2. أتمتة مهام الخادم
  3. معالجة الأخطاء وتسجيلها في النصوص البرمجية
  4. الدوال والوسائط والبرامج النصية القابلة لإعادة الاستخدام
← العودة إلى Linux Server Deployment & SSH Mastery