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

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

عرّف دوال Bash واستخدمها لتجميع الأوامر في لبنات بناء قابلة لإعادة الاستخدام ومعمّمة بالمعاملات ضمن shell الخاص بك.

دوال Shell ومقاطع برمجية قابلة لإعادة الاستخدام درس مجاني في 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 دروس في المجموع.

لماذا نستخدم دوال الصدفة؟

تجمع دالة الصدفة مجموعة من الأوامر تحت اسم واحد، بحيث يمكنك إعادة استخدامها من دون إعادة كتابتها.

  • أسرع من نسخ الأوامر ولصقها
  • أنظف من الاختصارات الطويلة
  • يمكنها قبول الوسائط، بخلاف الاختصارات
mkcd() {
  mkdir -p "$1" && cd "$1"
}

تعريف دالة

يستخدم أبسط شكل الصيغة name() { ... }. وتُنفّذ الأوامر بين القوسين المعقوفين عند استدعاء الدالة باسمها.

greet() {
  echo "Hello from a function"
}
greet

وسائط الدوال

تتلقى الدوال المعاملات الموضعية مثل البرامج النصية: $1 و$2. ويمثل $# العدد، بينما يوسّع $@ إلى جميع الوسائط.

backup() {
  cp "$1" "$1.bak"
  echo "Backed up $1"
}
backup notes.txt

القيم المرجعة وحالة الخروج

تعيد الدوال حالة خروج عبر return N (من 0 إلى 255). استخدمها للتحقق من النجاح أو الفشل، لا لإرجاع البيانات.

is_root() {
  [ "$(id -u)" -eq 0 ] && return 0 || return 1
}
if is_root; then echo root; else echo normal; fi

إرجاع المخرجات باستخدام echo

بما أن return لا ينقل إلا رمز الحالة، تتم طباعة المخرجات الفعلية والتقاطها باستخدام $( ).

timestamp() {
  date +%Y%m%d-%H%M%S
}
name="log-$(timestamp).txt"
echo "$name"

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

تكون المتغيرات داخل الدوال عامة افتراضيًا. استخدم local لحصر نطاق المتغير في الدالة وتجنب تلويث الصدفة.

count_lines() {
  local n
  n=$(wc -l < "$1")
  echo "$1 has $n lines"
}

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

استخدم توسيع المعاملات ${1:-default} للرجوع إلى قيمة افتراضية عند غياب الوسيط.

say() {
  local msg="${1:-Hello World}"
  echo "$msg"
}
say
say "Custom message"

الدوال مقابل الأسماء المستعارة

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

  • استخدم اسمًا مستعارًا لاختصار ثابت
  • استخدم دالة عندما تحتاج إلى منطق أو وسائط
alias ll='ls -la'
lt() { ls -la "${1:-.}" | tail -n "${2:-5}"; }

جعل الدوال دائمة

تختفي الدوال المعرّفة عند موجّه الأوامر عند خروج الصدفة. أضفها إلى ~/.bashrc لتصبح متاحة في كل جلسة.

# Append to ~/.bashrc
extract() {
  case "$1" in
    *.tar.gz) tar xzf "$1" ;;
    *.zip)    unzip "$1" ;;
    *)        echo "Unknown format" ;;
  esac
}

عرض الدوال وإزالتها

يعرض declare -F أسماء الدوال، بينما يعرض declare -f name جسم الدالة. أزل دالة باستخدام unset -f name.

declare -F
declare -f greet
unset -f greet

تركيب الدوال معًا

يمكن للدوال استدعاء دوال أخرى، مما يتيح إنشاء أجزاء صغيرة قابلة لإعادة الاستخدام تتحد لتكوين أدوات أكبر.

log() { echo "[$(date +%T)] $*"; }
deploy() {
  log "Starting deploy"
  log "Done"
}
deploy

تحقّق سريع

اختبر مدى فهمك لدوال الصدفة.

مراجعة

لقد تعلمت إنشاء دوال صدفة قابلة لإعادة الاستخدام:

  • عرّفها باستخدام name() { ... } واستدعها باسمها
  • استخدم $1 و$@ و$# للوسائط، وreturn للحالة
  • حدّد نطاق المتغيرات باستخدام local، وأعد البيانات عبر echo
  • اجعلها دائمة في ~/.bashrc وافحصها باستخدام declare -f

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

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

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

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

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

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

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

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

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

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

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

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

  1. التحكم في المهام (bg، fg، jobs)
  2. توسعة Shell والمطابقة الشاملة
  3. الاختصارات والمطالبات المخصّصة
  4. دوال Shell ومقاطع برمجية قابلة لإعادة الاستخدام
← العودة إلى Linux Command Line & Bash Scripting Mastery