كيف يمكنني تمرير الحجة في نص باش؟

How Do I Pass Argument Bash Script



يجد معظم مستخدمي Linux Mint 20 أنفسهم عالقين عند تمرير وسيطة في نص برمجي bash. يمكنك تمرير الوسيطات إلى أي نص برمجي باش عند تنفيذه. هناك عدة طرق بسيطة ومفيدة لتمرير الوسائط في نص باش. في دليل المقالة هذا ، سنعلمك ببعض الطرق السهلة جدًا لتمرير واستخدام الوسائط في نصوص bash.

تمرير الوسيطات باستخدام المتغيرات الافتراضية:

أنشئ ملفًا جديدًا بأي اسم باستخدام الأمر touch ، على سبيل المثال ، file.sh.







$لمس. اتصال. صلةاسم الملف



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







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

$./وسيطة اسم الملف الوسيطة 1 وسيطة 2

لذا لمنح حقوق التنفيذ لهذا الملف ، استخدم الأمر sudo chmod للقيام بذلك.



$سودو chmod+ x اسم الملف

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

تمرير اسم البرنامج النصي لـ Shell كوسيطة:

الآن ، باستخدام نفس الملف القديم file.sh مع تغيير بسيط في متغيراته الافتراضية. يجب عليك إضافة المتغير $ 0 في البرنامج النصي كما هو موضح.

عند تشغيل نفس الأمر ./ shell script ، اسم البرنامج النصي لـ shell ، على سبيل المثال سيتم تخزين ./filename في المتغير $ 0 كوسيطة.

تمرير الحجج كمصفوفة لمتغير:

بدءًا من نفس الملف file.sh ، يجب عليك إضافة بعض الأسطر الإضافية في البرنامج النصي القديم. قم بتعريف متغير باسم المصفوفة. أضف متغيرًا افتراضيًا [email protected] والذي سيخزن المعطيات التي أدخلها المستخدم كمصفوفة. سيتم تحليل هذه الوسائط إلى مصفوفة متغيرة. سيعرض السطر الأخير جميع وسائط مصفوفة المتغيرات مرتبة حسب رقم الفهرس.

نفّذ البرنامج النصي ./ shell. سترى أنه سيعرض الوسيطات أو القيم المخزنة كمصفوفة في [email protected] محللًا لمصفوفة متغيرة ولكن ليس اسم البرنامج النصي shell في جملة echo الثانية. سيكون لديك الإخراج التالي.

$./وسيطة اسم الملف الوسيطة 1 وسيطة 2

استخدم نفس الملف مع نفس البرنامج النصي. ما عليك سوى إزالة $ {array [3]} من السطر الأخير كما هو واضح في الصورة.

بعد تنفيذ الأمر ./ ، سترى ناتجًا مشابهًا لما حصلت عليه في المثال أعلاه بدون تغيير.

يمكنك أيضًا الحصول على نفس النتيجة عن طريق استبدال السطر الأخير من البرنامج النصي bash بكلمة واحدة. عليك فقط إضافة [email protected] في بيان echo ، وسوف يعرض الوسيطات الموجودة في مصفوفة المتغيرات هذه.

لذا ، عند تشغيل الأمر ./ مرة أخرى ، ستحصل على نفس النتائج.

تحقق من إجمالي عدد الحجج التي تم تمريرها:

على العكس من ذلك ، إذا كنت تريد معرفة العدد الإجمالي للوسيطات التي مررها المستخدم ، فيمكنك أيضًا القيام بذلك. لهذا الغرض ، عليك فقط استبدال [email protected] بصدى $ #.

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

إنشاء خط بخط إخراج الوسيطات:

قم بإنشاء ملف test.sh جديد في الدليل الرئيسي. أضف البرنامج النصي bash كما هو موضح.

الآن قم بتشغيل نفس الأمر القديم بحجج مختلفة. أولاً ، سترى الخطأ: تم رفض الإذن.

يجب عليك تنفيذ الأمر chmod لمنح هذا الملف امتيازات sudo. بعد ذلك ، قم بتشغيل الأمر ./ shell script مرة أخرى. وستحصل على ناتج الوسيطات المصنفة سطرًا سطرًا.

تحديد المتغير عبر رقم فهرس الوسيطة:

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

إذا كانت الوسيطات التي قدمها المستخدمون أقل من رقم الفهرس المتوفر في متغير الحد ، فستحصل على قيمة وسيطة فارغة. كمثال ، لقد قدمت 4 وسيطات ، لكنني أعطيت قيمة الوسيطة 05 ليتم عرضها. في هذه الحالة ، سيتم عرض المتغير فارغًا لأنه لم يتم تمرير الوسيطة الخامسة.

ولكن عندما تمرر عددًا مساويًا أو أكثر من الوسائط في الأمر ، ستحصل على القيمة المعروضة في النتيجة كما هو موضح.

التحقق من وسيطات القيمة المحددة:

قم بإنشاء ملف جديد باسم Check.sh في الدليل الرئيسي الخاص بك. أضف نفس البرنامج النصي bash كما هو موضح في الصورة أدناه. في هذا البرنامج النصي ، لدينا متغير var لتخزين قيمة الوسيطة التي يمررها المستخدم. ثم لدينا تعليمة if ، والتي ستتحقق من مطابقة قيمة الوسيطة أم لا. إذا تمت مطابقة قيمة الوسيطة مع القيمة المقدمة في الأقواس ، فسيتم تنفيذ أول جملة echo. إذا كانت القيمة غير متطابقة ، فسيتم تنفيذ جملة echo الثانية.

عندما نقوم بتشغيل الأمر shell script ، سوف يظهر خطأ. باستخدام الأمر chmod ، يمكننا تصحيح هذا الخطأ.

بعد ذلك ، قم بتنفيذ البرنامج النصي shell لملف معين مع بعض قيمة الوسيطة. في حالتنا ، قدمنا ​​الأقصى كقيمة وسيطة ، وهي نفس القيمة المعروضة بين الأقواس. لذلك سينفذ سكربت bash أول بيان صدى كما هو موضح.

من ناحية أخرى ، إذا قمت بتوفير قيم الوسيطة المختلفة في البرنامج النصي shell ، فسيتم عرض عبارة echo الأخرى. هنا ، أضفت Rimsha كقيمة وسيطة ، والتي تختلف عن القيمة المقدمة في عبارة if. لذا سينفذ سكربت bash تعليمة echo الثانية.

استنتاج:

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