إذا كنت تكرر أمرًا واحدًا قصيرًا في Terminal على جهاز Mac الخاص بك، فقد يكون الاسم المستعار كافيًا. وإذا كانت المهمة تحتاج إلى وسائط، أو عدة خطوات، أو قرارات، أو استخدام خارج قوقعتك التفاعلية، فاكتب نصًا برمجياً. وللحالات المتوسطة — خاصة الأمر الذي يحتاج إلى وسائط ولكن يجب أن يغير دليل القوقعة الحالية — فكّر في استخدام دالة zsh. يساعدك هذا الدليل على الاختيار بناءً على ما يجب أن يفعله الأمر والمكان الذي تحتاج إلى أن يعمل فيه.

ما يفعله الاسم المستعار (alias) على macOS

الاسم المستعار هو اسم قصير يوسّعه zsh ليتحول إلى نص الأمر أثناء الكتابة. على سبيل المثال، إذا كنت تُشغّل git status كثيرًا، فيمكنك إضافة alias gs='git status' إلى ملف ~/.zshrc. توثّق Apple أن zsh هو القوقعة الافتراضية لتطبيق Terminal، مع أنه يمكن تغيير قوقعة Mac، لذا تحقق من إعداداتك إذا تصرف الاسم المستعار بشكل مختلف عن المتوقع. دليل Apple لـ Terminal

استخدم الاسم المستعار عندما يكون الاستبدال ثابتًا في جوهره: تهجئة أقصر، أو خيار قياسي، أو أمر بسيط تقوم بتشغيله بشكل تفاعلي. من السهل تعديله أو إزالته، كما أنه يُبقي الإجراء كاملاً مرئيًا عند فحص تعريفه. في zsh، لا تأخذ الأسماء المستعارة وسائط كمعلمات؛ بل هي استبدالات نصية. هذا يجعل الاسم المستعار خيارًا غير ملائم عندما تحتاج إلى تمرير مسار أو قيمة متغيرة أخرى إلى الإجراء. دليل مستخدم Zsh للأسماء المستعارة

ترتبط الأسماء المستعارة أيضًا بتحليل القوقعة (parsing) وبدء التشغيل. التعريف الذي يتم تحميله من ~/.zshrc يكون مفيدًا في جلسة Terminal تفاعلية، ولكن لا ينبغي أن تفترض أن برنامجًا آخر، أو قوقعة غير تفاعلية، أو نصًا برمجياً سيقرأ هذا الملف ويتعرف على الاسم المستعار. إذا كان الأمر بحاجة إلى استدعاء موثوق من سياقات مختلفة، فاستخدم نصًا برمجياً أو واجهة أوامر صريحة أخرى.

متى يكون النص البرمجي (script) هو الخيار الأفضل

اختر نصًا برمجياً عندما تكون المهمة المتكررة إجراءً صغيرًا وليست أمرًا ثابتًا. تتضمن الدلائل على ذلك وجود خطوات متعددة، أو وسائط، أو عمليات فحص، أو تفرعات شرطية، أو سلوك واضح للنجاح أو الفشل، أو الحاجة إلى استدعائه عبر مسار أو من أداة أخرى. تصف Apple نصوص القوقعة البرمجية (shell scripts) بأنها وسيلة للجمع بين أدوات سطر الأوامر، والتعامل مع الوسائط، واتخاذ القرارات بناءً على رموز النتائج. توجد أيضًا اختلافات في لهجات نصوص القوقعة البرمجية، لذا اختر المفسّر (interpreter) وقم بتوثيقه بدلاً من افتراض أن كل قوقعة تقرأ الصياغة نفسها. دليل Apple التمهيدي للبرمجة النصية في القوقعة

على سبيل المثال، إذا كان هناك إجراء روتيني يأخذ مجلد مشروع كمدخل، ويتحقق من وجوده، ثم يُشغّل نفس التسلسل هناك، فيمكن للنص البرمجي أن يجعل هذا الإدخال صريحًا ويضع الخطوات بترتيب مقروء. قبل أتمتة تغييرات مثل حذف الملفات أو استبدالها، أضف عمليات فحص واجعل سلوك الفشل واضحًا. يعمل نص القوقعة البرمجي كأمر في سياق التنفيذ الخاص به؛ لذا لا ينبغي الاعتماد على تغيير الدليل بداخله لتغيير دليل قوقعة Terminal المستدعية. يوثّق Zsh تنفيذ أوامر النصوص البرمجية بشكل منفصل عن تنفيذ الدوال في القوقعة المستدعية. تنفيذ أوامر Zsh

النص البرمجي ليس أكثر أمانًا أو قابلية للنقل تلقائيًا. فهو ملف إضافي يتطلب الصيانة، ويعتمد سلوكه على المفسّر الخاص به، والأوامر المتاحة على Mac، والأذونات، والافتراضات حول المسارات أو المدخلات. يحذر دليل Apple التمهيدي على وجه التحديد من أن لهجات القوقعة واختلافات أدوات المنصات يمكن أن تؤدي إلى أخطاء. اجعل النصوص البرمجية محددة النطاق، وضع علامات اقتباس حول توسيعات المتغيرات عند الاقتضاء، واختبرها باستخدام مدخلات عينة آمنة قبل استخدامها على بيانات قيمة.

استخدم دالة zsh للحالة المتوسطة

غالبًا ما تكون الدالة هي الخيار الأفضل إذا كنت بحاجة إلى منطق ووسائط قابلة لإعادة الاستخدام في قوقعة Terminal الحالية، ولكنك لا تحتاج إلى ملف مستقل. على سبيل المثال، يمكن للدالة قبول وسيط دليل، والتحقق من صحته، ثم الانتقال إليه عبر cd؛ ونظرًا لأن دوال zsh تعمل في عملية قوقعة المستدعي، فإن هذا التغيير في الدليل يستمر في الجلسة التفاعلية. يوثّق Zsh أن الدوال تستقبل الوسائط وتُنفّذ في نفس عملية المستدعي. دوال Zsh

قم بتعريف دالة في ~/.zshrc عندما تريد أن تكون متاحة في جلسات Terminal التفاعلية. وفضّل استخدام نص برمجي عندما يجب أن يعمل الإجراء كأمر منفصل، أو يتم استدعاؤه بواسطة أدوات أو نصوص برمجية أخرى، أو عندما يكون من الأسهل مشاركته كملف. وفضّل الاسم المستعار عندما يكون كل ما تريده هو اسم لا يُنسى لسطر أوامر واحد ثابت.

اختبار سريع لاتخاذ القرار

اسأل نفسك عما سيتغير إذا قمت بتشغيل المهمة مرة أخرى. إذا لم يتغير شيء سوى اسم الأمر، فاستخدم اسمًا مستعارًا. وإذا كانت هناك قيمة تتغير في كل مرة، مثل مجلد أو اسم ملف، فاستخدم دالة أو نصًا برمجياً يقبل ذلك. وإذا كانت المهمة تحتوي على خطوات أو قرارات، فاستخدم نصًا برمجياً. وإذا كان يجب عليها تغيير جلسة Terminal الحالية، مثل دليل العمل الخاص بها، فاستخدم دالة.

ثم تحقق من المكان الذي تحتاج فيه إلى الأمر. في Terminal فقط؟ قد يكون الاسم المستعار أو الدالة في ~/.zshrc مناسبين. هل تريده أمرًا يمكن استدعاؤه بشكل منفصل؟ استخدم نصًا برمجياً، مع مفسّر مناسب وأذونات محددة بدقة. هل ستتم مشاركته مع جهاز Mac آخر؟ وثّق الافتراضات والأدوات المطلوبة؛ فنص القوقعة البرمجي ليس قابلاً للنقل تلقائيًا لمجرد أنه يعمل في Terminal.

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

المصادر