ذكري المظهر

باش شيبانج

Rah Insaki - Mohamad Bash / رح انساكي - محمد باش

Rah Insaki - Mohamad Bash / رح انساكي - محمد باش

جدول المحتويات:

Anonim

يُسمى تسلسل الأحرف هذا ( #! ) shebang ويستخدم لإخبار نظام التشغيل عن المترجم الشفوي الذي يجب استخدامه لتحليل بقية الملف.

توجيه مترجم شيبانج

يأخذ توجيه مترجم Shebang بالشكل التالي:

#!interpreter

  • يجب أن يكون التوجيه السطر الأول في البرنامج النصي. يجب أن يبدأ التوجيه بـ shebang #! تكون المساحة البيضاء بعد أحرف shebang اختيارية.المترجم هو المسار الكامل للملف الثنائي (على سبيل المثال: /bin/sh ، /bin/bash ). وسيطات Interpreter اختيارية.

أمثلة:

  • #!/bin/bash - يستخدم bash لتحليل الملف. #!/usr/bin/env perl - يستخدم أمر env لإيجاد المسار إلى الملف التنفيذي القابل للتنفيذ. #!/usr/bin/python ينفذ الملف باستخدام python الثنائي.

باستخدام Shebang في البرامج النصية باش

إذا لم يتم تحديد shebang وكان المستخدم الذي يقوم بتشغيل البرنامج النصي Bash يستخدم Shell آخر ، فسيتم تحليل البرنامج النصي بأي شيء يستخدمه هذا المترجم الافتراضي. على سبيل المثال ، المترجم الافتراضي bash هو bash و zsh هو sh . لضمان أن يتم دائمًا ترجمة النص البرمجي باستخدام Bash ، ستحتاج إلى تحديد المسار القابل للتنفيذ باستخدام shebang.

هناك طريقتان لاستخدام توجيه Shebang وتعيين المترجم الفوري.

  1. باستخدام المسار المطلق إلى bash binary:

    #!/bin/bash

    باستخدام الأداة المساعدة env :

    #!/usr/bin/env bash

تتمثل ميزة استخدام الطريقة الثانية في أنها ستبحث عن bash القابل للتنفيذ في المتغير البيئي للمستخدم $PATH . إذا كان هناك أكثر من مسار واحد bash ، فسيتم استخدام المسار الأول بواسطة البرنامج النصي.

عند استخدام الخيار الأول لإضافة خيار إلى مصدر Bash shell ، قم بتمريره إلى المترجم الفوري. على سبيل المثال ، لتشغيل البرنامج النصي في وضع التصحيح ، يمكنك استخدام #!/bin/bash -x . إذا كنت تستخدم طريقة env فأنت بحاجة إلى استخدام set لتعريف الخيار. لتمكين وضع التصحيح ، يمكنك إضافة set -x بعد سطر shebang.

مثال سيناريو

لنقم بإنشاء برنامج نصي بسيط باستخدام shebang الذي سيطبع "Hello، World". افتح محرر النصوص والصق السطر التالي:

nano hello_world مرحبا بالعالم

#!/bin/bash echo "Hello, World"

لتتمكن من تشغيل البرنامج النصي دون تحديد المترجم الفوري من سطر الأوامر ، ستحتاج إلى جعل الملف قابلاً للتنفيذ:

chmod +x hello_world

الآن إذا كان يمكنك تشغيل البرنامج النصي عن طريق الكتابة. ./ متبوعًا باسم البرنامج النصي:

./hello_world

Hello, World

التغلب على شيبانج

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

على سبيل المثال لتشغيل برنامج نصي يحتوي على #!/bin/sh المحدد في سطر Shebang باستخدام غلاف bash الذي تكتبه:

bash hello_world

يرجى ملاحظة ، أنها ليست فكرة جيدة لتجاوز مترجم shell لأنه قد يؤدي إلى سلوك غير متوقع من البرنامج النصي.

استنتاج

الآن يجب أن يكون لديك فهم جيد لما هو Shebang وكيفية استخدامه في البرامج النصية Bash الخاصة بك.

محطة باش