ما هي المعلمة الموضعية؟

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

المتغيرات التي تخزن المعلمات الموضعية

مثال نموذجي للقذيفة الذي يستخدم المعلمات الموضعية هو bash. يمكنك استخدام bash على Linux و BSD و macOS X و Windows 10.

النظر في الأمر باش التالية. اسم الأمر هو mycommand . يحتوي سطر الأوامر على ثلاثة معلمات: واحد واثنان وثلاثة أربعة .

 mycommand واحد اثنين "ثلاثة أربعة" 

نصيحة: يتم تحديد المعلمات الموضعية بمسافة. يفسر الغلاف الأشياء بعد المسافات كمعلمات فردية. إذا كانت المعلمة نفسها تحتوي على مسافة ، ضعها بين علامتي اقتباس ، كما في "ثلاثة أربعة" أعلاه.

أثناء تشغيل mycommand ، يزودها bash بمتغيرات shell التالية:

اسم المتغيرالقيمة
$ 0الامر الخاص بى
$ 1واحد
$ 2اثنان
$ 3ثلاثة أربعة
$ #3
[البريد الإلكتروني المحمي]واحد إثنان ثلاثة أربعة
$ *واحد إثنان ثلاثة أربعة

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

تحتوي المتغيرات $ 1 و $ 2 و $ 3 على قيم المعلمات الأولى والثانية والثالثة ، على التوالي. إذا كان هناك معلمة رابعة ، فستوضع قيمتها في المتغير $ 4 . يمكن الوصول إلى معلمات أكبر من 9 باستخدام الأقواس المتعرجة حول الرقم ؛ على سبيل المثال ، سيكون $ {10} هو المعامل العاشر ، وسيكون $ {123} هو 123.

يحتوي المتغير $ # على عدد المعلمات الموضعية ، باستثناء $ 0.

يحتوي المتغير [البريد الإلكتروني المحمي] على قيمة جميع معلمات الموضع ، باستثناء $ 0.

المتغير $ * هو نفسه [البريد الإلكتروني المحمي] ، إلا عندما يكون نقل مزدوج. عند إحاطة علامتي اقتباس مزدوجتين ، يتم توسيع $ * إلى $ 1c $ 2c $ 3c ... حيث c هي الحرف الأول من $ IFS ، متغير فاصل الحقل الداخلي في bash. يتم استخدام IFS لتقسيم الكلمات ، وقيمتها الافتراضية هي "مسافة أو علامة تبويب أو سطر جديد" - هذا هو المكان الذي يرى فيه bash نهاية كلمة واحدة وبداية الكلمة التالية.

إذا كانت قيمة $ IFS هي " _ " (تسطير أسفل السطر) ، فسيتم توسيع "[البريد الإلكتروني المحمي]" إلى:

 واحد إثنان ثلاثة أربعة 

بينما يمتد "$ *" إلى:

 واحد إثنان ثلاثة أربعة 

أمثلة

فيما يلي بعض الأمثلة لاستخدام المعلمات الموضعية في bash.

باستخدام الأمر set المدمج ، يمكن تعديل قيمة [البريد الإلكتروني المحمي] للقذيفة الحالية. كل شيء بعد المجموعة - سيتم تسجيله كمعلمة الموضعية.

 مجموعة - واحد اثنين "ثلاثة أربعة" 

يمكننا الآن تكرار هذه المتغيرات باستخدام ... في :

 للحجة في [البريد الإلكتروني المحمي] ؛ هل صدى "$ arg" ؛ فعله 
 واحد إثنان ثلاثة أربعة 

في bash ، [البريد الإلكتروني المحمي] هي القائمة الافتراضية للتكرار عند تشغيل ، لذلك يعمل هذا الأمر أيضًا:

 لأرج هل صدى "$ arg" ؛ فعله 
 واحد إثنان ثلاثة أربعة 

يوفر التكرار أكثر من "$ *" (مع علامات اقتباس مزدوجة) سلسلة متسلسلة من المعلمات الموضعية ، المرتبطة بالحرف الأول من $ IFS :

 IFS = ""؛ للحجة في "$ *" ؛ هل صدى "$ arg" ؛ فعله 
 واحد إثنان ثلاثة أربعة 

لمزيد من المعلومات ، راجع وثائق shell bash command.

المعلمة ، شروط البرمجة