معلمة موضعية

ل المعلمة الموضعية هي حجة محددة في سطر الأوامر ، تستخدم لبدء العملية الحالية في قذيفة. يتم تخزين قيم المعلمات الموضعية في مجموعة خاصة من المتغيرات تحتفظ بها القذيفة.
المتغيرات التي تخزن المعلمات الموضعية
المثال النموذجي للقذيفة التي تستخدم المعلمات الموضعية هو سحق . يمكنك استخدام bash on لينكس و BSD و macOS X و نظام التشغيل Windows 10 .
ضع في اعتبارك أمر bash التالي. اسم الأمر هو الامر الخاص بى . يحتوي سطر الأوامر على ثلاث معلمات: واحد و اثنين ، و ثلاثة أربعة .
mycommand one two 'three four'نصيحة
المعلمات الموضعية هي محدد بمسافة. تفسر الصدفة الأشياء بعد المسافات كمعلمات فردية. إذا كانت المعلمة نفسها تحتوي على مسافة ، فقم بتضمينها علامات الاقتباس ، كما في 'ثلاثة أربعة' أعلاه.
في حين الامر الخاص بى قيد التشغيل ، يزودها bash بمتغيرات shell التالية:
اسم المتغير | قيمة |
---|---|
0 دولار | الامر الخاص بى |
1 دولار | واحد |
2 دولار | اثنين |
3 دولارات | ثلاثة أربعة |
# دولار | 3 |
[البريد الإلكتروني محمي] | واحد إثنان ثلاثة أربعة |
$ * | واحد إثنان ثلاثة أربعة |
المتغير 0 دولار تم تعيينه على الكلمة الأولى من الأمر - اسم الأمر. هذا المتغير مفيد لأنه يمكن إعادة تسمية الأوامر أو تنفيذها باستخدام ملف ارتباط رمزي . تتصرف بعض البرامج بشكل مختلف بناءً على اسم الأمر المستخدم لتشغيل البرنامج. 0 دولار يسمح للبرنامج برؤية اسم الأمر الذي أطلقه.
المتغيرات 1 دولار و 2 دولار ، و 3 دولارات تحتوي على قيم المعلمات الأولى والثانية والثالثة على التوالي. إذا كان هناك معلمة رابعة ، فسيتم وضع قيمتها في المتغير 4 دولارات . يمكن الوصول إلى المعلمات الأكبر من 9 باستخدام أقواس معقوفة حول الرقم ؛ على سبيل المثال، {10} دولارًا أمريكيًا ستكون المعلمة العاشرة ، و {123} دولارًا أمريكيًا سيكون 123.
المتغير # دولار يحتوي على عدد من المعلمات الموضعية ، باستثناء $ 0.
المتغير [البريد الإلكتروني محمي] يحتوي على قيمة جميع المعلمات الموضعية ، باستثناء 0 دولار.
المتغير $ * بالضبط مثل [البريد الإلكتروني محمي] ، إلا عندما تكون مقتبسة مرتين. عندما يتم تضمينها بين علامتي اقتباس ، $ * يتوسع إلى $1c$2c$3c ... أين ج هو الحرف الأول من IFS دولار ، متغير فاصل المجال الداخلي لباش. يتم استخدام IFS لتقسيم الكلمات ، وقيمته الافتراضية هي 'مسافة ، علامة تبويب ، أو سطر جديد' - هذا هو المكان الذي يرى فيه bash بداية ونهاية كلمة واحدة.
إذا كانت قيمة IFS دولار هو ' _ '(ان شرطة سفلية ) ، '[بريد إلكتروني محمي]' يتوسع إلى:
one two three four
بينما '$ *' يتوسع إلى:
one_two_three four
أمثلة
فيما يلي أمثلة لاستخدام المعلمات الموضعية في bash.
باستخدام جلس أمر مدمج ، قيمة [البريد الإلكتروني محمي] يمكن تعديلها للقذيفة الحالية. كل شيء بعد جلس -- تم تسجيله كمعامل موضعي.
set -- one two 'three four'
يمكننا الآن تكرار هذه المتغيرات باستخدام ل ... في :
for arg in [email protected] ; do echo '$arg'; done
one two three four
في باش [البريد الإلكتروني محمي] هي القائمة الافتراضية للتكرار عند التشغيل ل ، لذلك يعمل هذا الأمر أيضًا:
for arg; do echo '$arg'; done
one two three four
التكرار '$ *' (مع اقتباس مزدوج) يوفر أ متسلسلة سلسلة من المعلمات الموضعية ، مرتبطة بالحرف الأول من IFS دولار :
IFS=','; for arg in '$*'; do echo '$arg'; done
one,two,three four
لمزيد من المعلومات ، راجع وثائق قذيفة أمر bash .