Skip to main content

لينكس - قيادة يونيكس: باش

اليمين قبل اليسار➡️ أين ومتى يطبق وماهي نظرة الكتف????المرايا والرصيف المنخفض⏏➖ (تعلم القيادة مع سالم) (أبريل 2025)

اليمين قبل اليسار➡️ أين ومتى يطبق وماهي نظرة الكتف????المرايا والرصيف المنخفض⏏➖ (تعلم القيادة مع سالم) (أبريل 2025)
Anonim

الأمر Linux سحق هوشمترجم لغة الأوامر متوافق الذي ينفذ الأوامر القراءة من الإدخال القياسي أو من ملف.سحق يتضمن أيضًا ميزات مفيدة من قذائف Korn و C (KSH وCSH).

باش خيارات

بالإضافة إلى خيارات shell أحادية الحرف الموثقة في وصفجلس أمر مدمج ،سحق يفسر الخيارات التالية عند استدعائها:

  • -c خيط: إذا كان-c الخيار موجود ، ثم يتم قراءة الأوامر من خيط . إذا كان هناك حجج بعد خيط ، يتم تعيينها إلى المعلمات الموضعية ، بدءًا من$0.
  • -أنا: إذا كان-أنا الخيار موجود ، والقشرة متفاعل .
  • -l: يصنعسحق التصرف كما لو تم استدعاؤه كقاعدة تسجيل دخول.
  • -r: إذا كان-r الخيار موجود ، يصبح shell محدد.
  • -s: إذا كان-s الخيار موجود ، أو في حالة عدم وجود أي وسائط بعد معالجة الخيار ، يتم قراءة الأوامر من الإدخال القياسي. يسمح هذا الخيار بتحديد معلمات الموضع عند استدعاء غلاف تفاعلي.
  • : قائمة بجميع السلاسل المزدوجة التي تم اقتباسها من قبل$ تتم طباعتها على الإخراج القياسي. هذه هي السلاسل التي تخضع لترجمة اللغة عندما لا تكون اللغة الحاليةC أوPOSIX. هذا يعني -ن اختيار؛ سيتم تنفيذ أي أوامر.
  • - + O shopt_option : shopt_option هي واحدة من خيارات الصدف التي قبلتهاshopt مدمج. إذا shopt_option حاضر،-O يحدد قيمة هذا الخيار ، و+ O يزيلها. إذا shopt_option لا يتم توفير أسماء وقيود خيارات shell المقبولة بواسطةshopt تتم طباعتها على الإخراج القياسي. إذا كان خيار الاحتجاج هو + O، يتم عرض الإخراج بتنسيق يمكن إعادة استخدامه كمدخل.
  • --: ا-- يشير إلى نهاية الخيارات ويعطل المزيد من معالجة الخيارات. أي الحجج بعد-- تعامل كأسماء ملفات ووسائط. حجة- ما يعادل--.

سحق يفسر أيضا عددا من الخيارات متعددة الشخصيات. يجب أن تظهر هذه الخيارات على سطر الأوامر قبل أن يتم التعرف على خيارات الأحرف الفردية:

  • --dump بو السلاسل: أي ما يعادللكن الإخراج موجود في جنو الحصول على النص بو تنسيق ملف محمول (كائن محمول).
  • سلاسل --dump: أي ما يعادل.
  • --مساعدة: عرض رسالة الاستخدام على الإخراج القياسي وإنهاء بنجاح.
  • --init ملف: ملف و --rcfile ملف : تنفيذ الأوامر من ملف بدلاً من ملف التهيئة الشخصية القياسي ~ / .bashrc إذا كانت قذيفة تفاعلية.
  • --تسجيل الدخول: أي ما يعادل-l.
  • --noediting: لا تستخدم جنويقوم readline مكتبة لقراءة أسطر الأوامر عندما تكون shell تفاعلية.
  • --لا الشخصية: لا تقرأ ملف بدء التشغيل على مستوى النظام / الخ / صورة أو أي من ملفات التهيئة الشخصية ~ / .bash_profile , ~ / .bash_login أو ~ / .profile . بشكل افتراضي،سحق يقرأ هذه الملفات عند استدعائه كقاعدة تسجيل دخول.
  • --norc: لا تقرأ وينفذ ملف التهيئة الشخصية ~ / .bashrc إذا كانت قذيفة تفاعلية. يتم تشغيل هذا الخيار افتراضيًا إذا تم استدعاء shell كـش.
  • --posix: تغيير سلوكسحق حيث تختلف العملية الافتراضية عن معيار POSIX لتتطابق مع المعيار ( وضع posix ).
  • --محدد: تصبح shell مقيدًا.
  • --rpm-يتطلب: إنتاج قائمة الملفات المطلوبة لتشغيل البرنامج النصي shell. هذا يعني "-n" ويخضع لنفس القيود التي يتم بها التحقق من خطأ الوقت في الترجمة. لا يتم تحليل باكتكس و الاختبارات و evals ، لذلك قد يتم تفويت بعض التبعيات.
  • --verbose: أي ما يعادل-الخامس.
  • --الإصدار: عرض معلومات الإصدار لهذا المثيل منسحق على الإخراج القياسي والخروج بنجاح.

الحجج

إذا ظلت الحجج بعد معالجة الخيار وليس هناك-c ولا-s تم توفير الخيار ، يفترض أن تكون الوسيطة الأولى هي اسم ملف يحتوي على أوامر shell. إذا سحق يتم استدعاؤه على هذا النحو ،$0 تم تعيينه على اسم الملف ، ويتم تعيين المعلمات الموضعية إلى الوسائط المتبقية.سحق يقرأ وينفذ الأوامر من هذا الملف ؛ ثم يخرج.سحقحالة الخروج هي حالة الخروج من الأمر الأخير المنفذة في البرنامج النصي. إذا لم يتم تنفيذ أية أوامر ، تكون حالة الخروج هي 0. يتم إجراء محاولة لفتح الملف في الدليل الحالي ، وإذا لم يتم العثور على أي ملف ، فستقوم shell بالبحث في الدلائل فيمسار للبرنامج النصي.

استدعاء

ا قذيفة تسجيل الدخول هو الشخص الذي أول حرف له من الصفر هو-أو بدأ مع--تسجيل الدخول اختيار.

ل متفاعل قذيفة واحدة بدأت دون الحجج غير الخيار وبدون-c الخيار الذي يتصل مدخله ومخرجه القياسيان بالمطاريف كما هو محدد بواسطة isatty (3) ، أو واحد بدأ مع-أنا اختيار.PS1 تم تعيين و $- يتضمن ما إذا كان bash تفاعليًا ، مما يسمح لبرنامج نصي shell أو ملف بدء تشغيل لاختبار هذه الحالة.

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

متىسحق يتم استدعاء كقذيفة تسجيل دخول تفاعلي أو كقذيفة غير تفاعلية مع--تسجيل الدخول الخيار ، يقرأ أولاً وينفذ الأوامر من الملف / الخ / صورة ، إذا كان هذا الملف موجودًا. بعد قراءة هذا الملف ، فإنه يبحث عن ~ / .bash_profile , ~ / .bash_login و ~ / .profile ، في هذا الترتيب ، ويقرأ وينفذ الأوامر من أول واحد موجود وقابل للقراءة. ال--لا الشخصية يمكن استخدام الخيار عند بدء shell لمنع هذا السلوك.

عندما تخرج قذيفة تسجيل الدخول ،سحق يقرأ وينفذ الأوامر من الملف ~ / .bash_logout إذا كان موجودًا.

عندما تبدأ قذيفة تفاعلية ليست صدفة تسجيل دخول ،سحق يقرأ وينفذ الأوامر من ~ / .bashrc ، إذا كان هذا الملف موجودًا. هذا يمكن ان تحول دون استخدام--norc اختيار. ال--rcfile ملف الخيار سيجبرسحق لقراءة وتنفيذ الأوامر من ملف بدلا من ~ / .bashrc .

متىسحق بدأ غير تفاعلي - لتشغيل برنامج نصي shell ، على سبيل المثال - يبحث عن المتغيرBASH_ENV في البيئة ، يوسع قيمته إذا ظهر هناك ، ويستخدم القيمة الموسعة كاسم ملف للقراءة والتنفيذ.سحق يتصرف كما لو تم تنفيذ الأمر التالي:

if -n "$ BASH_ENV"؛ ثم . "$ BASH_ENV". فاي

لكن قيمةمسار لا يستخدم المتغير للبحث عن اسم الملف.

إذاسحق يتم استدعاء مع الاسمش، فإنه يحاول محاكاة سلوك بدء التشغيل الإصدارات السابقة منش قدر الإمكان ، مع الالتزام بمعيار POSIX أيضًا. عند استدعاء كقذيفة تسجيل دخول تفاعلي أو قذيفة غير تفاعلية مع--تسجيل الدخول الخيار ، فإنه يحاول أولاً قراءة وتنفيذ الأوامر من / الخ / صورة و ~ / .profile ، بهذا الترتيب. ال--لا الشخصية يمكن استخدام الخيار لمنع هذا السلوك. عند استدعاء كقذيفة تفاعلية بالاسم ش, سحق يبحث عن المتغيرENVيوسع قيمته إذا تم تعريفه ، ويستخدم القيمة الموسعة كاسم ملف للقراءة والتنفيذ. منذ أن استندت قذيفة كماش لا تحاول قراءة وتنفيذ الأوامر من أي ملفات بدء التشغيل الأخرى ، و--rcfile الخيار ليس له أي تأثير. قذيفة غير تفاعلية استُخدمت مع الاسمش لا تحاول قراءة أي ملفات بدء تشغيل أخرى. عندما استندت على النحوش, سحق يدخل POSIX الوضع بعد قراءة ملفات بدء التشغيل.

متىسحق بدأ في POSIX الوضع ، كما هو الحال مع--posix خيار سطر الأوامر ، وهو يتبع معيار POSIX لملفات بدء التشغيل. في هذا الوضع ، توسع الأصداف التفاعليةENV المتغير والأوامر يتم قراءتها وتنفيذها من الملف الذي يكون اسمه هو القيمة الموسعة. يتم قراءة أي ملفات بدء التشغيل الأخرى.

سحق محاولات لتحديد متى يتم تشغيله بواسطة daemon shell البعيد ، عادةً rshd . إذا سحق يحدد أنه يجري تشغيلها من قبل rshd ، يقرأ وينفذ الأوامر من ~ / .bashrc ، إذا كان هذا الملف موجودًا وقابلاً للقراءة. لن تفعل ذلك إذا تم استدعاؤها كـش. ال--norc خيار يمكن استخدامه لمنع هذا السلوك ، و--rcfile يمكن استخدام الخيار لفرض ملف آخر ليتم قراءته ، ولكن rshd لا يستدعي الصدفة عمومًا بتلك الخيارات أو يسمح بتحديدها.

إذا تم بدء shell مع معرف المستخدم (المجموعة) الفعال لا يساوي معرف المستخدم الحقيقي (المجموعة) ، و-p لا يتم توفير الخيار ، لا تقرأ أي ملفات بدء التشغيل ، لا يتم ورث وظائف شل من البيئة ، وSHELLOPTS متغير ، إذا ظهر في البيئة ، يتم تجاهلها ، ويتم تعيين معرف المستخدم الفعال لمعرف المستخدم الحقيقي. إذا كان-p يتم توفير الخيار عند الاستدعاء ، وسلوك بدء التشغيل هو نفسه ، ولكن لا يتم إعادة تعيين معرف المستخدم الفعلي.

تعريفات

تُستخدم التعريفات التالية طوال بقية المستند:

  • فراغ: مساحة أو علامة تبويب.
  • كلمة: تسلسل من الأحرف تعتبر وحدة واحدة بواسطة shell. المعروف أيضا باسم رمز.
  • اسم: ا كلمة تتكون من أحرف أبجدية رقمية وشرطات سفلية فقط ، وتبدأ بحرف أبجدي أو شرطة سفلية. يشار إليه أيضًا باسممعرف.
  • Metacharacter: حرف تقوم عند unquoted ، بفصل الكلمات. واحدة من التالية:| &؛ () <> علامة تبويب الفضاء
  • مشغل التحكم: ا رمز يقوم بأداء وظيفة التحكم. إنه أحد الرموز التالية: || & && ; ;; ( ) |

الكلمات المحجوزة

الكلمات المحجوزة هي الكلمات التي لها معنى خاص للقشرة. يتم التعرف على الكلمات التالية كمحجوزة عند unquoted وكلمة الأولى من أمر بسيط أو الكلمة الثالثة من aقضيةأوإلى عن على أمر:

! حالة القيام به Elif آخر esac fi لوظيفة إذا كان في اختيار ثم حتى حين {} الوقت

قواعد اللغة: أوامر بسيطة

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

قيمة الإرجاع أمر بسيط هي حالة الخروج ، أو 128+ ن إذا تم إنهاء الأمر عن طريق الإشارة ن .

خطوط الأنابيب

ا خط انابيب هو تسلسل لواحد أو أكثر من الأوامر مفصولة بالحرف|. تنسيق خط الأنابيب هو زمن -p ! أمر | command2 … .

الانتاج القياسي من أمر متصل عبر أنبوب إلى الإدخال القياسي لـ command2 . يتم تنفيذ هذا الاتصال قبل أي عمليات إعادة توجيه محددة بواسطة الأمر.

إذا كانت الكلمة المحجوزة! يسبق خط أنابيب ، حالة الخروج من خط الأنابيب هذا هي NOT المنطقية لحالة الخروج من الأمر الأخير. وإلا ، فإن حالة خط الأنابيب هي حالة الخروج من الأمر الأخير. تنتظر shell إنهاء كافة الأوامر الموجودة في خط الأنابيب قبل إرجاع القيمة.

إذا كانزمن كلمة محجوزة تسبق خط أنابيب ، يتم الإبلاغ عن الوقت المنقضي وكذلك المستخدم ووقت النظام المستهلكة من خلال تنفيذه عند انتهاء خط الأنابيب. ال-p يغير الخيار تنسيق الإخراج إلى ذلك المحدد بواسطة POSIX. التنسيق الوقت قد يتم تعيين متغير إلى سلسلة تنسيق تحدد كيفية عرض معلومات التوقيت.

يتم تنفيذ كل أمر في خط أنابيب كعملية منفصلة (في subshell ، على سبيل المثال).

قوائم

ا قائمة هو تسلسل لواحد أو أكثر من خطوط الأنابيب مفصولة بواسطة أحد المشغلين;, &, &&أو||، وانتهت اختياريا من جانب واحد من;, &أو.

من قائمة المشغلين ،&& و|| لها أسبقية متساوية ، يليها; و&, التي لها أسبقية متساوية.

قد يظهر تسلسل لواحد أو أكثر من الخطوط الجديدة في قائمة بدلاً من فاصلة منقوطة لتحديد الأوامر.

إذا تم إنهاء أمر من قبل مشغل التحكم&، shell ينفذ الأمر في خلفية في subshell. لا تنتظر shell حتى ينتهي الأمر ، وحالة الإرجاع هي 0. الأوامر مفصولة بعلامة; يتم تنفيذها بالتسلسل ينتظر shell لكل أمر لإنهائه بدوره. حالة الإرجاع هي حالة الخروج من الأمر الأخير الذي تم تنفيذه.

مشغلي التحكم&& و|| تشير إلى AND قوائم و أو قوائم ، على التوالي. قائمة AND لها النموذج

command1 && command2

command2 يتم تنفيذها إذا ، وفقط إذا ، command1 إرجاع حالة الخروج من الصفر.

قائمة OR لديها النموذج

command1 || command2

command2 يتم تنفيذها إذا وفقط إذا command1 إرجاع حالة خروج غير صفرية. حالة الإرجاع من AND و OR قوائم هي حالة الخروج من الأمر الأخير المنفذة في القائمة.

أوامر مركبة

ا أمر مركب هو واحد مما يلي:

(قائمة) : قائمة يتم تنفيذها في subshell. لا تبقى التعيينات المتغيرة وأوامر builtin التي تؤثر على بيئة shell سارية المفعول بعد اكتمال الأمر. حالة الإرجاع هي حالة الخروج لـ قائمة .

{list؛ } : قائمة يتم تنفيذه ببساطة في بيئة shell الحالية. قائمة يجب إنهاءه باستخدام سطر جديد أو فاصلة منقوطة. هذا هو المعروف باسم قيادة المجموعة . حالة الإرجاع هي حالة الخروج لـ قائمة . لاحظ أنه على عكس الحروف الأولية( و), { و} هي الكلمات المحجوزة ويجب أن تحدث عندما يُسمح باستخدام كلمة محجوزة. بما أنهم لا يتسببون في كسر كلمة ، فيجب فصلهم عنها قائمة بواسطة whitespace.

((التعبير)) : ال التعبير يتم تقييمه وفقًا للقواعد الموضحة أدناه التقييم الحسابي. إذا كانت قيمة التعبير غير صفرية ، تكون حالة الإرجاع 0 ؛ وإلا فإن حالة الإرجاع هي 1. وهذا يعادل تمامًاسمح ' التعبير '.

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

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

يمكن الجمع بين التعبيرات باستخدام عوامل التشغيل التالية ، المدرجة في ترتيب تنازلي للأسبقية:

  • (تعبير): إرجاع قيمة التعبير . يمكن استخدام هذا لتجاوز الأسبقية المعتادة للمشغلين.
  • ! expressio ن: صحيح اذا التعبير هو زائف.
  • expression1 && expression2 : صحيح إذا كلاهما expression1 و expression2 صحيحة.
  • expression1 || expression2 : صحيح سواء expression1 أو expression2 صحيح.

ال&& و|| المشغلين لا تقيم expression2 إذا كانت قيمة expression1 كافية لتحديد قيمة الإرجاع للتعبير الشرطي بأكمله.

  • إلى عن على اسم في كلمة ; فعل قائمة ; فعله: قائمة الكلمات التاليةفي يتم توسيعها ، وتوليد قائمة من العناصر. المتغير اسم تم تعيينه على كل عنصر في هذه القائمة بدوره ، و قائمة يتم تنفيذه في كل مرة. إذا كانفي كلمة محذوف ، وإلى عن على ينفذ الأمر قائمة مرة واحدة لكل معلمة موضعية تم ضبطها. حالة الإرجاع هي حالة الخروج من الأمر الأخير الذي ينفذ. إذا كان التوسع في العناصر التاليةفي النتائج في قائمة فارغة ، ولا يتم تنفيذ أية أوامر ، وحالة الإرجاع هي 0.
  • إلى عن على (( expr1 ; expr2 ; expr3 )) ; فعل قائمة ; فعله: أولا ، التعبير الحسابي expr1 يتم تقييمه وفقًا للقواعد الموضحة أدناهالتقييم الحسابي. التعبير الحسابي expr2 يتم تقييمها بشكل متكرر حتى يتم تقييمها إلى الصفر. كل مرة expr2 يقيّم إلى قيمة غير صفرية ، قائمة يتم تنفيذها والتعبير الحسابي expr3 تم التقييم. إذا تم حذف أي تعبير ، فإنه يعمل كما لو أنه يتم تقييمه إلى 1. قيمة الإرجاع هي حالة الخروج من الأمر الأخير في قائمة الذي يتم تنفيذه ، أو خطأ إذا كان أي من التعبيرات غير صالح.
  • تحديد اسم في كلمة ; فعل قائمة ; فعله: قائمة الكلمات التاليةفي يتم توسيعها ، وتوليد قائمة من العناصر. تتم طباعة مجموعة الكلمات الموسعة على الخطأ القياسي ، ويسبق كل منها رقم. إذا كانفي كلمة يتم حذف ، يتم طباعة المعلمات الموضعية. ال PS3 ثم يتم عرض المطالبة وخط قراءة من الإدخال القياسي. إذا كان الخط يتكون من رقم يقابل إحدى الكلمات المعروضة ، عندئذٍ تكون قيمة اسم تم تعيينه لهذه الكلمة. إذا كان السطر فارغًا ، فسيتم عرض الكلمات والمطالبة مرة أخرى. إذا تمت قراءة EOF ، يكمل الأمر. أي قيمة أخرى تقرأ الأسباب اسم ليتم تعيينه إلى null. يتم حفظ قراءة السطر في المتغيرالرد. ال قائمة يتم تنفيذه بعد كل اختيار حتىاستراحة يتم تنفيذ الأمر. حالة الخروج منتحديد هي حالة الخروج من الأمر الأخير المنفذة في قائمة ، أو صفر إذا تم تنفيذ أية أوامر.
  • قضية كلمة في ( نمط | نمط : اقضية الأمر يوسع أولا كلمة ، ويحاول مطابقته ضد كل منها نمط بدوره ، باستخدام نفس القواعد المطابقة لتوسيع اسم المسار. عندما يتم العثور على تطابق ، المقابلة قائمة يتم تنفيذ. بعد المباراة الأولى ، لن تتم محاولة أي مباريات لاحقة. حالة الخروج هي صفر إذا لم يطابق أي نمط. وإلا ، فهي حالة الخروج من الأمر الأخير المنفذة في قائمة .
  • إذا قائمة ; ثم قائمة؛ و أليف قائمة ; ثم قائمة ; … آخر قائمة ; فاي: الإذا قائمة يتم تنفيذ. إذا كانت حالة الخروج هي صفر ، فإنثم قائمة يتم تنفيذ. خلاف ذلك ، كل أليف قائمة يتم تنفيذه بدوره ، وإذا كان وضع الخروج هو صفر ، المقابلةثم قائمة يتم تنفيذه ويكمل الأمر. وإلا فإنآخر قائمة يتم تنفيذه ، إذا كان موجودًا. حالة الخروج هي حالة الخروج من الأمر الأخير الذي تم تنفيذه ، أو صفر إذا لم يتم اختبار أي حالة.
  • في حين قائمة ; فعل قائمة ; فعله و حتى قائمة ; فعل قائمة ; فعله: الفي حين القيادة باستمرار ينفذفعل قائمة طالما أن الأمر الأخير في قائمة إرجاع حالة الخروج من الصفر. الحتى الأمر هو مماثل لفي حين الأمر ، إلا أنه تم negut الاختبار؛ الفعل قائمة يتم تنفيذه طالما أن الأمر الأخير في قائمة إرجاع حالة خروج غير صفرية. حالة الخروج منفي حين وحتى الأوامر هي حالة الخروج من الماضيفعل قائمة الأمر المنفذة ، أو صفر إذا لم يتم تنفيذ أي منها.
  • وظيفة اسم () { قائمة . }: هذا يحدد وظيفة مسمى اسم . ال الجسم من وظيفة هي قائمة من الأوامر بين {و}. يتم تنفيذ هذه القائمة كلما اسم يتم تحديده كاسم أمر بسيط. حالة الخروج لدالة هي حالة الخروج من الأمر الأخير المنفذة في الجسم.

تعليقات

في قذيفة غير تفاعلية أو قذيفة تفاعلية فيها interactive_comments الخيار الىshopt تمكين builtin ، تبدأ الكلمة بها# تسبب هذه الكلمة وجميع الأحرف المتبقية على هذا الخط ليتم تجاهله. شل التفاعلية دونinteractive_comments الخيار ممكّن لا يسمح بالتعليقات. ال interactive_comments يتم تشغيل الخيار بشكل افتراضي في الأصداف التفاعلية.

نقلا عن

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

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

عندما يتم استخدام مرافق توسيع تاريخ القيادة ، و توسيع التاريخ شخصية ، عادة!يجب ذكره لمنع توسع التاريخ.

هناك ثلاث آليات الاقتباس: هروب الشخصية ، ونقلت واحدة ، واقتباسات مزدوجة.

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

يحافظ إرفاق الأحرف في علامات الاقتباس المفردة على القيمة الحرفية لكل حرف داخل علامات الاقتباس. قد لا يحدث الاقتباس المنفرد بين علامات الاقتباس المفردة ، حتى عندما يسبقها علامة مائلة عكسية.

إن احتواء الأحرف في علامات اقتباس مزدوجة يحافظ على القيمة الحرفية لكل الحروف داخل علامات الاقتباس ، باستثناء$, 'و. الشخصيات$ و' الاحتفاظ بمعناها الخاص ضمن علامات اقتباس مزدوجة. يحتفظ الخط المائل العكسي بمعناها الخاص فقط عندما يتبعه أحد الأحرف التالية:$, ', ', أو. قد يتم اقتباس اقتباس مزدوج ضمن علامات اقتباس مزدوجة من قبل قبله بخط مائل عكسي.

المعلمات الخاصة* و@ يكون لها معنى خاص عندما تكون في علامات اقتباس مزدوجة.

كلمات من النموذج$' خيط "تعامل خصيصا. الكلمة تتوسع ل خيط ، مع استبدال أحرف backslash-escaped كما هو محدد بواسطة القياسي ANSI C. يتم فك ترميز تسلسل الهروب Backslash ، إذا كان موجودًا ، كما يلي:

  • ا: تنبيه (جرس)
  • ب: backspace
  • ه: حرف الهروب
  • F: نموذج تغذية
  • ن: خط جديد
  • ص: إرجاع
  • ر: مساحة أفقية
  • الخامس: علامة التبويب العمودي
  • \: مائل عكسي
  • ': اقتباس واحد
  • NNN : الحرف ذو الثمانية بتات الذي قيمته هي القيمة الثمانية NNN (واحد إلى ثلاثة أرقام)
  • س ح ح : الحرف المكون من ثمانية بتات الذي قيمته هي القيمة السداسية عشرية ح ح (رقم واحد أو رقمين ست عشريين)
  • ج س : عنصر تحكم- س حرف

النتيجة الموسعة هي المقتبس الواحد ، كما لو أن علامة الدولار لم تكن موجودة.

سلسلة مقتبسة مزدوجة مسبوقة بعلامة الدولار ($) سيؤدي إلى ترجمة السلسلة وفقًا للإعدادات المحلية الحالية. إذا كانت اللغة الحالية هيC أوPOSIX، يتم تجاهل علامة الدولار. إذا تم ترجمة السلسلة واستبدالها ، يتم استبدال الاستبدال المزدوج.

المعلمات

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

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

ا متغير يمكن تعيينه في بيان للنموذج: اسم = القيمة

إذا القيمة لا يعطى ، المتغير يتم تعيين سلسلة فارغة. الكل القيم الخضوع للتوسع ، والمعلمة ، والتوسع المتغير ، واستبدال الأمر ، والتوسع الحسابي ، وإقتباس الاقتباس. إذا كان المتغير لديهعدد صحيح مجموعة السمة ، ثم القيمة يخضع للتوسعة الحسابية حتى إذا لم يتم استخدام التوسع $ ((…)). لا يتم تقسيم الكلمة ، باستثناء'$@' كما هو موضح تحتالمعلمات الخاصة. لا يتم تنفيذ امتداد Pathname. قد تظهر بيانات التعيين أيضًا كوسيطات لـأعلن, تنضيدها, تصدير, يقرأ فقطو محلي أوامر مدمج.

المعلمات Position

ا معلمة موضعية هو معلمة تشير إلى واحد أو أكثر من الأرقام ، بخلاف الرقم المفرد 0. يتم تعيين معلمات Position من وسيطات shell عندما يتم استدعاؤها ، ويمكن إعادة تعيينها باستخدامجلس أمر مدمج. قد لا يتم تعيين معلمات Position مع عبارات الواجب. يتم استبدال المعلمات الموضعية مؤقتًا عند تنفيذ وظيفة shell.

عندما يتم توسيع معلمة موضعية تتكون من أكثر من رقم واحد ، يجب تضمينها في أقواس.

المعلمات الخاصة

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

  • *: يمتد إلى المعلمات الموضعية ، بدءا من واحد. عندما يحدث التمدد ضمن علامات تنصيص مزدوجة ، فإنه يتمدد إلى كلمة واحدة مع قيمة كل معلمة مفصولة بالحرف الأول منIFS متغير خاص. هذا هو، "$*"يعادل"$1 ج $2 ج "، أين ج هو أول حرف من قيمةIFS متغير. إذاIFS غير محددة ، يتم فصل المعلمات بمسافات. إذاIFS فارغة ، يتم ضم المعلمات دون فصل الفواصل.
  • @: يمتد إلى المعلمات الموضعية ، بدءا من واحد. عندما يحدث التوسع ضمن علامات تنصيص مزدوجة ، يتم توسيع كل معلمة إلى كلمة منفصلة. هذا هو، "$@"يعادل"$1' '$2"… عندما لا تكون هناك معلمات موضعية"$@$@التوسع إلى لا شيء (تتم إزالتها).
  • #: يتوسع إلى عدد المعلمات الموضعية بالأرقام العشرية.
  • ?: يمتد إلى حالة خط الأنابيب الأمامي الذي تم تنفيذه مؤخرًا.
  • -: يتوسع إلى علامات الخيار الحالية كما هو محدد عند الاستدعاء ، من قبلجلس أمر مدمج أو تلك التي وضعتها القشرة نفسها، مثل-أنا اختيار.
  • $: يتوسع إلى معرف العملية shell. في subshell () ، يتم توسيعه إلى معرف العملية shell الحالي ، وليس subshell.
  • !: يتوسع إلى معرف العملية لأحدث الخلفية التي تم تنفيذها (غير المتزامن).
  • 0: يتوسع إلى اسم البرنامج النصي shell أو shell. يتم تعيين هذا على تهيئة shell. إذاسحق يتم استدعاء مع ملف الأوامر ،$0 تم تعيينه على اسم هذا الملف. إذاسحق بدأ مع-c الخيار ، ثم$0 يتم تعيينه إلى الوسيطة الأولى بعد السلسلة التي سيتم تنفيذها ، إذا كان موجودًا. خلاف ذلك ، يتم تعيينه على اسم الملف المستخدم للاستدعاءسحق، على النحو الوارد من الحجة الصفر.
  • _: عند بدء تشغيل shell ، اضبط على اسم الملف المطلق للصدفة أو البرنامج النصي shell الذي يتم تنفيذه كما تم تمريره في قائمة الوسيطة. بعد ذلك ، يتوسع إلى آخر وسيطة للأمر السابق ، بعد التوسع. كما يتم تعيينه على اسم الملف الكامل لكل أمر يتم تنفيذه ويتم وضعه في البيئة المصدرة إلى هذا الأمر. عند التحقق من البريد ، تحمل هذه المعلمة اسم ملف البريد الجاري التحقق منه حاليًا.

متغيرات قذيفة

يتم تعيين المتغيرات التالية بواسطة shell:

سحق: يتوسع إلى اسم الملف الكامل المستخدم لاستدعاء هذا المثيل منسحق.

BASH_VERSINFO: متغير صفيف readonly الذي يحتفظ أعضاءه بمعلومات الإصدار لهذا المثيل من سحق. القيم التي تم تعيينها لأعضاء الصفيف هي كالتالي:

  • BASH_VERSINFO 0: رقم الإصدار الرئيسي ( إطلاق سراح )
  • BASH_VERSINFO 1: رقم الإصدار الثانوي ( الإصدار )
  • BASH_VERSINFO 2: مستوى التصحيح
  • BASH_VERSINFO 3: إصدار البنية
  • BASH_VERSINFO 4: حالة الإصدار ( beta1، فمثلا)
  • BASH_VERSINFO 5: قيمةMACHTYPE

BASH_VERSION: يتوسع إلى سلسلة تصف إصدار مثيل هذاسحق.

COMP_CWORD: فهرس في$ {COMP_WORDS} للكلمة التي تحتوي على موضع المؤشر الحالي. هذا المتغير متوفر فقط في وظائف shell التي تستدعيها مرافق إكمال البرمجة القابلة للبرمجة.

COMP_LINE: سطر الأوامر الحالي. يتوفر هذا المتغير فقط في وظائف shell والأوامر الخارجية التي يتم استدعاؤها بواسطة تسهيلات الإكمال القابلة للبرمجة.

COMP_POINT: فهرس موضع المؤشر الحالي بالنسبة إلى بداية الأمر الحالي. إذا كان موضع المؤشر الحالي في نهاية الأمر الحالي ، فإن قيمة هذا المتغير تساوي$ {# COMP_LINE}. يتوفر هذا المتغير فقط في وظائف shell والأوامر الخارجية التي يتم استدعاؤها بواسطة تسهيلات الإكمال القابلة للبرمجة.

COMP_WORDS: متغير صفيف يتكون من الكلمات الفردية في سطر الأوامر الحالي. هذا المتغير متوفر فقط في وظائف shell التي تستدعيها مرافق إكمال البرمجة القابلة للبرمجة.

DIRSTACK: متغير صفيف يحتوي على المحتويات الحالية من كدسة الدليل. تظهر الدلائل في بنية تخزين العناصر بالترتيب الذي يتم عرضه بهتطبيق الاستعراض المفصل مدمج. قد يتم استخدام التعيين لأعضاء هذا المتغير الصفيف لتعديل الدلائل الموجودة بالفعل في بنية تخزين العناصر ، ولكنأوامر pushd وpopd يجب استخدام مدمج لإضافة وإزالة الدلائل. لن يؤدي التعيين لهذا المتغير إلى تغيير الدليل الحالي. إذاDIRSTACK لم يتم تعيينه ، فإنه يفقد خصائصه الخاصة ، حتى إذا تم إعادة تعيينه لاحقًا.

EUID: يتوسع إلى معرف المستخدم الفعال للمستخدم الحالي ، تهيئة عند بدء التشغيل قذيفة. هذا المتغير للقراءة فقط.

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

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

HISTCMD: رقم السجل أو الفهرس في قائمة المحفوظات للأمر الحالي. إذاHISTCMD لم يتم تعيينه ، فإنه يفقد خصائصه الخاصة ، حتى إذا تم إعادة تعيينه لاحقًا.

HOSTNAME: يتم التعيين تلقائيًا على اسم المضيف الحالي.

HOSTTYPE: يتم التعيين تلقائيًا على سلسلة تصف بشكل فريد نوع الجهاز الذي عليهسحق ينفذ. الافتراضي هو نظام يعتمد.

LINENO: في كل مرة تتم الإشارة إليها هذه المعلمة ، يستبدل shell رقمًا عشريًا يمثل رقم السطر المتسلسل الحالي (بدءًا بـ 1) داخل البرنامج النصي أو الوظيفة. عندما لا يكون في النص البرمجي أو الوظيفة ، لا تكون القيمة المستبدلة مضمونة. إذاLINENO لم يتم تعيينه ، فإنه يفقد خصائصه الخاصة ، حتى إذا تم إعادة تعيينه لاحقًا.

MACHTYPE: يتم التعيين تلقائيًا على سلسلة تصف بالكامل نوع النظام الذي توجد عليهسحق يتم تنفيذه في GNU القياسي وحدة المعالجة المركزية، شركة النظام شكل. الافتراضي هو معتمد على النظام.

OLDPWD: دليل العمل السابق كما هو محدد من قبلالقرص المضغوط أمر.

OPTARG: قيمة وسيطة الخيار الأخير التي تمت معالجتها بواسطةgetopts أمر مدمج.

OPTIND: فهرس الوسيطة التالية ليتم معالجتها بواسطةgetopts أمر مدمج.

OSTYPE: يتم التعيين تلقائيًا على سلسلة تصف نظام التشغيل الذي عليهسحق ينفذ. الافتراضي هو نظام يعتمد.

PIPESTATUS: متغير صفيف يحتوي على قائمة قيم حالة الخروج من العمليات في خط أنابيب المقدمة التي تم تنفيذها مؤخرًا ، والتي قد تحتوي على أمر واحد فقط.

PPID: معرف العملية من أصل shell. هذا المتغير للقراءة فقط.

PWD: دليل العمل الحالي كما هو محدد من قبلالقرص المضغوط أمر.

RANDOM: في كل مرة تتم الإشارة إليها هذه المعلمة ، يتم إنشاء عدد صحيح عشوائي بين 0 و 32767. قد يتم تهيئة تسلسل الأرقام العشوائية عن طريق تعيين قيمة لها RANDOM. إذاRANDOM لم يتم تعيينه ، فإنه يفقد خصائصه الخاصة ، حتى إذا تم إعادة تعيينه لاحقًا.

الرد: اضبط على سطر المدخلات الذي يقرأهاقرأ الأمر builtin عندما يتم توفير أي وسائط.

ثوان: في كل مرة تتم الإشارة إليها هذه المعلمة ، عدد الثواني منذ إرجاع استدعاء shell. إذا تم تعيين قيمة لثوان، القيمة التي يتم إرجاعها عند مراجع لاحقة هي عدد الثواني منذ تعيين زائد القيمة المعينة. إذا ثوان لم يتم تعيينه ، فإنه يفقد خصائصه الخاصة ، حتى إذا تم إعادة تعيينه لاحقًا.

SHELLOPTS: قائمة مفصولة بفواصل بين خيارات shell الممكنة. كل كلمة في القائمة هي حجة صالحة ل-o الخيار الىجلس أمر مدمج. الخيارات التي تظهر فيSHELLOPTS هي تلك التي أبلغ عنها على بواسطةset -o. إذا كان هذا المتغير في البيئة عندماسحق يبدأ ، سيتم تمكين كل خيار قذيفة في القائمة قبل قراءة أي ملفات بدء التشغيل. هذا المتغير للقراءة فقط.

SHLVL: زيادة واحدة في كل مرة على سبيل المثالسحق لقد بدءت.

UID: يتوسع لمعرف المستخدم للمستخدم الحالي ، تهيئة عند بدء التشغيل shell. هذا المتغير للقراءة فقط.

يتم استخدام المتغيرات التالية بواسطة shell. في بعض الحالات،سحق يعين قيمة افتراضية للمتغير ؛ تتم ملاحظة هذه الحالات.

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

CDPATH: مسار البحث عنالقرص المضغوط أمر. هذه قائمة من الدلائل المفصولة بفواصل نقطية والتي يبحث فيها shell عن أدلة الوجهة المحددة بواسطةالقرص المضغوط أمر. قيمة العينة هي ".: ~: / usr".

الأعمدة: تستخدم من قبلتحديد الأمر builtin لتحديد عرض المحطة الطرفية عند طباعة قوائم التحديد. ضبط تلقائيا عند استلام SIGWINCH.

COMPREPLY: متغير صفيف من خلالهاسحق يقرأ الإكمالات الممكنة الناتجة عن وظيفة shell التي يستدعيها مرفق الاكتمال القابل للبرمجة.

FCEDIT: المحرر الافتراضي للFC أمر مدمج.

FIGNORE: قائمة لاحقة مفصولة باللاحقة لتجاهلها عند إنجاز اسم الملف. اسم الملف الذي تتطابق لاحقته مع أحد الإدخالات فيFIGNORE يتم استبعاده من قائمة أسماء الملفات المتطابقة. قيمة العينة هي ".o: ~".

GLOBIGNORE: قائمة مفصولة بفواصل من الأنماط التي تحدد مجموعة أسماء الملفات التي سيتم تجاهلها بواسطة توسيع اسم المسار. إذا تطابق اسم الملف المطابق لنمط توسيع اسم المسار أيضًا مع أحد الأنماط فيGLOBIGNORE، يتم إزالته من قائمة المباريات.

HISTCONTROL: إذا تم الضبط على قيمة ignorespace الخطوط التي تبدأ بـالفراغ لم يتم إدخال الحرف في قائمة المحفوظات. إذا تم ضبطه على قيمة ignoredups ، لا يتم إدخال الخطوط المطابقة لخط التاريخ الأخير. قيمة ignoreboth يجمع بين الخيارين. إذا لم يتم تعيينها أو تم تعيينها على أي قيمة أخرى غير تلك المذكورة أعلاه ، فسيتم حفظ جميع الأسطر التي يقرأها المحلل اللغوي في قائمة المحفوظات ، وفقًا لقيمةHISTIGNORE. تم استبدال وظيفة هذا المتغير بـ HISTIGNORE. لا يتم اختبار الأسطر الثانية واللاحقة لأمر مركب متعدد الأسطر ، ويتم إضافتها إلى السجل بغض النظر عن قيمةHISTCONTROL.

HISTFILE: اسم الملف الذي يتم حفظ محفوظات الأوامر فيه. النظام الأساسي ~ / .bash_history . في حالة عدم التعيين ، لا يتم حفظ محفوظات الأوامر عند إنهاء shell التفاعلي.

HISTFILESIZE: الحد الأقصى لعدد الأسطر الموجودة في ملف السجل. عند تعيين قيمة لهذا المتغير ، يتم اقتطاع ملف السجل ، إذا لزم الأمر ، بحيث لا يحتوي على أكثر من هذا العدد من الأسطر. القيمة الافتراضية هي 500. يتم أيضًا اقتطاع ملف السجل إلى هذا الحجم بعد كتابته عند إنهاء shell التفاعلي.

HISTIGNORE: قائمة مفصولة بفواصل من الأنماط المستخدمة لتحديد أي أسطر الأوامر التي يجب حفظها في قائمة المحفوظات. يتم تثبيت كل نمط في بداية السطر ويجب أن يتطابق مع السطر الكامل (غير ضمني)*"هو إلحاق). يتم اختبار كل نمط مقابل الخط بعد الشيكات المحددة بواسطةHISTCONTROL يطبق. بالإضافة إلى الأحرف المطابقة لنموذج shell العادي ، "&"يطابق سطر التاريخ السابق. '&يمكن الهروب باستخدام خط مائل عكسي ؛ تتم إزالة الخط المائل العكسي قبل محاولة مطابقة. لا يتم اختبار الأسطر الثانية واللاحقة لأمر مركب متعدد الأسطر ويتم إضافتها إلى السجل بغض النظر عن قيمةHISTIGNORE.

HISTSIZE: عدد الأوامر التي يجب تذكرها في سجل الأوامر. القيمة الافتراضية هي 500.

الصفحة الرئيسية: الدليل الرئيسي للمستخدم الحالي ؛ الوسيطة الافتراضية للالقرص المضغوط أمر مدمج. يتم استخدام قيمة هذا المتغير أيضًا عند تنفيذ توسع التيلدة.

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

IFS: ال فاصل الحقل الداخلي يستخدم لتقسيم الكلمات بعد التمديد وتقسيم الخطوط إلى كلمات معاقرأ أمر مدمج. النظام الأساسي "''.

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

INPUTRC: اسم الملف ليقوم readline ملف بدء التشغيل ، تجاوز الافتراضي ~ / .inputrc .

LANG: يُستخدم لتحديد فئة الإعدادات المحلية لأي فئة لا يتم تحديدها بشكل محدد مع متغير يبدأ بـLC_.

LC_ALL: يتجاوز هذا المتغير قيمةLANG وأي شيء آخرLC_ متغير يحدد فئة اللغة.

LC_COLLATE: يحدد هذا المتغير ترتيب الترتيب المستخدم عند فرز نتائج امتداد اسم المسار ويحدد سلوك تعبيرات النطاق وفئات التقابل وتسلسلات الترتيب في توسع اسم المسار ومطابقة النمط.

LC_CTYPE: يحدد هذا المتغير تفسير الأحرف وسلوك فئات الأحرف داخل توسيع اسم المسار ومطابقة النمط.

LC_MESSAGES: يحدد هذا المتغير الإعدادات المحلية المستخدمة لترجمة سلاسل مقتبسة مزدوجة مسبوقة بعلامة$.

LC_NUMERIC: يحدد هذا المتغير فئة اللغة المستخدمة لتنسيق الأرقام.

خطوط: تستخدم من قبلتحديد الأمر builtin لتحديد طول العمود لقوائم اختيار الطباعة. ضبط تلقائيا عند استلام SIGWINCH.

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

MAILCHECK: يحدد عدد المرات (بالثواني)سحق يتحقق للبريد. الافتراضي هو 60 ثانية. عندما يحين وقت التحقق من البريد ، يقوم shell بذلك قبل عرض المطالبة الأساسية. في حالة عدم تعيين هذا المتغير أو تعيينه إلى قيمة ليست أكبر من أو تساوي الصفر ، فإن shell يعطل تدقيق البريد.

MAILPATH: قائمة بأسماء الملفات مفصولة بفواصل نقطية لفحصها للبريد. يمكن تحديد الرسالة التي سيتم طباعتها عند وصول البريد إلى ملف معين عن طريق فصل اسم الملف عن الرسالة التي تحتوي على "؟". عند استخدامها في نص الرسالة ،$_ يوسع إلى اسم ملف ترحيل البريد الحالي. مثال:

MAILPATH = '/ var / mail / bfox؟ "لديك بريد": ~ / shell-mail؟ "$ _ به بريد!"

سحق توفر قيمة افتراضية لهذا المتغير ، ولكن موقع ملفات بريد المستخدم التي يستخدمها هو نظام ي