AzLearn

الدوال

Functions

مفهوم ~16 دقيقة

الدوال — Functions

الدالة في Bash تجمع عدة أوامر تحت اسم واحد. عندما ترى تكراراً، أو عندما تصبح كتلة الأوامر طويلة، اسأل نفسك: هل توجد نية تستحق اسماً؟ دالة مثل print_header أو require_file تجعل السكربت يقرأ كخطة، لا كسلسلة أوامر مبعثرة.

الصيغة الشائعة هي name() { ... }. لا تحتاج كلمة function. داخل الدالة يمكنك قراءة المعاملات بالطريقة نفسها: $1 و$2. انتبه أن هذه المعاملات تخص الدالة، لا السكربت كله. لذلك مرر القيم بوضوح بدلاً من الاعتماد على متغيرات عامة كلما استطعت.

الدالة الجيدة تفعل شيئاً واحداً. إذا كان اسمها يحتوي “and” غالباً هي تفعل أكثر من اللازم. مثلاً validate_and_copy يمكن تقسيمها إلى require_file وcopy_file. هذا يجعل الاختبار والتصحيح أسهل.

مثال عملي

script.sh

لاحظ استخدام local داخل الدالة. سنتوسع فيه في الدرس القادم، لكنه هنا يمنع متغير title من التسرب إلى باقي السكربت.

دوال للطباعة ودوال للتحقق

بعض الدوال تطبع نصاً، مثل print_heading. بعضها يتحقق ويخرج عند الخطأ، مثل require_file. كن واضحاً في الاسم. إذا كانت الدالة قد تنهي السكربت، اجعل اسمها يعبر عن ذلك أو استخدمها في مكان واضح.

تحدي — Challenge