كيفية التعامل مع وسيطات سطر الأوامر في نص Bash

How Handle Command Line Arguments Bash Script



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

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

يبدأ متغير الوسيطة من 0 دولار. يتم تخزين اسم ملف البرنامج النصي الرئيسي في $ 0 الذي يتلقى قيم الوسيطات من وسيطات سطر الأوامر. إذا تم تمرير وسيطتين في سطر الأوامر ، فسيتم استلام قيم الوسيطة في متغيري $ 1 و $ 2 بالتتابع.







مثال -1: إرسال ثلاث قيم رقمية كوسيطات

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



#!/bin/bash

# حساب العدد الإجمالي للحجج
رما - طرد - قذف 'إجمالي عدد الوسائط: $ #'

# قراءة قيم الحجة بشكل فردي
رما - طرد - قذف 'قيمة الوسيطة الأولى: $ 1'
رما - طرد - قذف 'قيمة الوسيطة الثانية: 2 دولار'
رما - طرد - قذف 'قيمة الوسيطة الثالثة: 3 دولارات'

# قراءة قيم الحجة باستخدام الحلقة
لأرجفالفي '[بريد إلكتروني محمي]'
فعل
رما - طرد - قذف 'أرجفال دولار'
انتهى

# إضافة قيم الوسيطة
مجموع= دولار((1 دولار+2 دولار+3 دولارات))

# طباعة النتيجة
رما - طرد - قذف 'ننتيجة المجموع =مبلغ دولار'

قم بتشغيل ملف bash بثلاث قيم وسيطة رقمية.



$سحقcmdline1.shخمسون 35 خمسة عشر





المثال -2: أخذ اسم الملف كوسيطة

قم بإنشاء ملف bash وأضف التعليمات البرمجية التالية لحساب العدد الإجمالي للأحرف لأي ملف. هنا ، سيتم تمرير اسم الملف كوسيطة سطر الأوامر.

#!/bin/bash
اسم الملف=1 دولار
توتالشار='مرحاض اسم الملف $'
رما - طرد - قذف العدد الإجمالي للأحرفTotalchar $'

قم بتشغيل البرنامج النصي bash مع اسم الملف كقيمة وسيطة واحدة وتشغيل أمر آخر للتحقق من العدد الإجمالي لأحرف هذا الملف. هنا ، يتم استخدام ملف worker.txt كقيمة وسيطة. إجمالي عدد أحرف ملف Employ.txt هو 204.



$سحقcmdline2.sh الموظف. txt
$مرحاض Employee.txt

باستخدام وظيفة getopts:

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

مثال -1: قراءة الحجج بواسطة دالة getopts

قم بإنشاء ملف bash وأضف النص التالي لفهم استخدام getopts وظيفة. تُستخدم وظيفة 'getopts' مع حلقة while لقراءة خيارات وسيطة سطر الأوامر وقيم الوسيطات. هنا ، يتم استخدام 4 خيارات وهي 'أنا' ، 'ن' ، 'م' و 'و' . يتم استخدام بيان الحالة لمطابقة خيار معين وتخزين قيمة الوسيطة في متغير. أخيرًا ، اطبع قيم المتغير.

#!/bin/bash
في حين getopts ':في نفسي:'غاضب؛فعل
قضية $ أرج في
أنا) هوية شخصية=OPTARG دولار؛؛
ن) اسم=OPTARG دولار؛؛
م) تاريخ التصنيع=OPTARG دولار؛؛
و) تاريخ انتهاء الصلاحية=OPTARG دولار؛؛
esac
انتهى
رما - طرد - قذف 'نمعرف دولار اسم $ تاريخ_التصنيع Expire_dateن'

قم بتشغيل الملف بالخيارات وقيم الوسيطات التالية. هنا ، p100 هي قيمة -i option ، 'Hot Cake' هي قيمة -n option ، '01 -01-2018 هي قيمة الخيار -m و '06 -01-2018 هي قيمة - الخيار الإلكتروني.

$سحقcmdline3.sh-أناص 001 'هوت كيك' م '01 -01-2018' '06-01-2018 '

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