بعض خيارات Bash معروفة جيدًا وغالبًا ما تستخدم. على سبيل المثال ، يكتب الكثيرون في بداية البرنامج النصي
  set -o xtrace 
لتصحيح الأخطاء ،
  set -o errexit 
للخروج عن طريق الخطأ أو
  ضبط -O errunset 
للخروج إذا لم يتم تعيين المتغير الذي تم استدعاؤه.
ولكن هناك العديد من الخيارات الأخرى. أحيانًا ما يتم الخلط بينهم وبين الرجال ، لذلك قمت بجمع بعض من الأكثر فائدة ، مع شرح.
ملاحظة: قد يكون لدى Mac إصدار أقدم من bash (3.x ، وليس 4.x) ، حيث لا تتوفر كل هذه الخيارات. في هذه الحالة ، انظر هنا أو هنا .set أو shopt ؟
هناك طريقتان لتعيين معلمات bash: من برنامج نصي أو من سطر الأوامر. يمكنك استخدام 
shopt . كلاهما يغيران سلوك القشرة ، ويقومان بنفس الشيء (بحجج مختلفة) ، ويختلفان في 
أصلهما . 
set معلمات 
set أو استعارة من المعلمات من الأصداف الأخرى ، في حين 
shopt إنشاء المعلمات 
shopt في باش.
إذا كنت تريد إلقاء نظرة على الخيارات الحالية ، فقم بتشغيل:
 $ set -o $ shopt 
لتنشيط خيار في 
set ، يتم استخدام بناء جملة طويل أو قصير:
 $ set -o errunset $ set -e 
التأثير هو نفسه.
لتعطيل هذا الخيار ، تحتاج إلى وضع علامة زائد بدلاً من الطرح:
 $ set +e 
لفترة طويلة لم أتمكن من تذكر بناء الجملة هذا ، لأن المنطق يبدو خاطئًا (ناقص يعمل على الخيار ، بالإضافة إلى إيقاف تشغيله).
يستخدم 
shopt (أكثر منطقية) 
-s (set) و 
-u (unset) لتمكين الخيارات وتعطيلها:
 $ shopt -s cdspell  
دليل التغييرات
هناك العديد من الخيارات التي تساعدك على العمل مع الدلائل.
1. cdspell
باستخدام هذا الإعداد ، سيبدأ bash في فهم الأخطاء المطبعية وينقلك إلى مجلد قمت بكتابة اسمه بخطأ.
 $ shopt -s cdspell $ mkdir abcdefg $ cd abcdeg abcdefg $ cd .. 
لقد استخدمت هذا الخيار لسنوات عديدة ، ونادراً ما يتخذ قرارًا غريبًا للغاية (ربما مرة واحدة في السنة). لكن في الأيام الأخرى ، يوفر 
cdspell الوقت ، حرفيًا كل يوم.
2. autocd
إذا لم تكن مستعدًا لتحمل عدم كفاءة إدخال 
cd المتكرر ، فيمكنك تعيين هذا الخيار للانتقال إلى المجلد X إذا لم يكن الأمر X موجودًا.
 $ shopt -s autocd $ abcdefg $ cd .. 
في تركيبة مع الإكمال التلقائي ، يتيح لك هذا الانتقال السريع إلى المجلدات:
 $ ./abc[TAB][RETURN] cd -- ./abcdefg 
فقط لا 
rm -rf * المجلد 
rm -rf * (نعم ، بالمناسبة ، هذا ممكن).
3. ديريكسباند
هذا خيار رائع يمد متغيرات البيئة عن طريق الضغط على Tab:
 $ shopt -s direxpand $ ./[TAB]  
خروج نظيف
4. checkjobs
يوقف هذا الخيار الخروج من الجلسة إذا كانت الوظائف لا تزال تعمل في الخلفية.
بدلاً من الخروج ، يتم عرض قائمة بالمهام غير المكتملة. إذا كنت لا تزال ترغب في الخروج ، فأدخل 
exit مرة أخرى.
 $ shopt -s checkjobs $ echo $$ 68125  
قدرات الاستبدال
5. globstar
يمنحك هذا الخيار قدرات استبدال خارق! إذا قمت بإدخال:
 $ shopt -s globstar $ ls ** 
ثم سوف تظهر قذيفة بشكل متكرر جميع الدلائل والدلائل.
بالاقتران مع 
direxpand يمكنك أن ترى بسرعة كل شيء أدناه في التسلسل الهرمي:
 $ shopt -s direxpand $ ls **[TAB][TAB] Display all 2033 possibilities? (y or n) 
6. extglob
يقوم هذا الخيار بتنشيط الوظائف التي ترتبط غالبًا بالتعبيرات العادية. هذا مفيد في بعض الأحيان:
 $ shopt -s extglob $ touch afile bfile cfile $ ls afile bfile cfile $ ls ?(a*|b*) afile bfile $ ls !(a*|b*) cfile 
هنا ، يتم وضع الأنماط بين قوسين ويفصل بينهما شريط عمودي. فيما يلي العوامل المتاحة:
  ؟  = يطابق الصفر أو حدوث واحد للنماذج المحددة
 !  = أظهر كل ما لا يتطابق مع الأنماط المحددة
 * = صفر أو أكثر من الحوادث
 + = حدث واحد أو أكثر
 @ = حدث واحد بالضبط 
حماية الحوادث
7. histverify
في البداية ، يمكن أن يكون استخدام مخيف لأوامر البداية السريعة من تاريخ الاختصارات أمرًا مخيفًا بعض الشيء 
!! و 
!$ .
يتيح 
histverify خيار 
histverify أولاً رؤية كيف يفسر Bash الأمر قبل أن يبدأ فعليًا:
 $ shopt -s histverify $ echo !$  
8. نوكلوبير
مرة أخرى ، للحماية من الحوادث ، أي من الكتابة فوق ملف موجود بالفعل مع مشغل إعادة التوجيه ( 
> ). قد تكون هذه كارثة إذا لم يكن لديك نسخة احتياطية.
يحظر خيار 
set - هذا الكتابة. إذا لزم الأمر ، يمكنك تجاوز الحماية باستخدام المشغل 
>| :
 $ touch afile $ set -C $ echo something > afile -bash: afile: cannot overwrite existing file $ echo something >| afile $