الفرق بين المراجعتين لصفحة: «Bash/more Bash options»

من موسوعة حسوب
إدخال 2.0 محتوى وتنسيق
لا ملخص تعديل
سطر 6: سطر 6:


hsoub:~> set -o
hsoub:~> set -o
allexport off
allexport               off
braceexpand on
braceexpand             on
emacs on
emacs                   on
errexit off
errexit                 off
hashall on
hashall                 on
histexpand on
histexpand             on
history on
history                 on
ignoreeof off
ignoreeof               off
interactive-comments on
interactive-comments   on
keyword off
keyword                 off
monitor on
monitor                 on
noclobber off
noclobber               off
noexec off
noexec                 off
noglob off
noglob                 off
nolog off
nolog                   off
notify off
notify                 off
nounset off
nounset                 off
onecmd off
onecmd                 off
physical off
physical               off
posix off
posix                   off
privileged off
privileged             off
verbose off
verbose                 off
vi off
vi                     off
xtrace off
xtrace                 off
</syntaxhighlight>انظر صفحات دليل <code>info</code> > قسم أوامر الصدفة المُضمَّنة > أمر <code>Set</code>، من أجل مزيد من التفصيل عن كل خيار، إذ ستجد أن كثيرًا من الخيارات بها اختزال وحيد المحرف (one-character)، فمثلًا خيار <code>xtrace</code> يساوي تحديد <code>set -x</code>.
</syntaxhighlight>انظر صفحات دليل <code>info</code> > قسم أوامر الصدفة المُضمَّنة > أمر <code>Set</code>، من أجل مزيد من التفصيل عن كل خيار، إذ ستجد أن كثيرًا من الخيارات بها اختزال وحيد المحرف (one-character)، فمثلًا خيار <code>xtrace</code> يساوي تحديد <code>set -x</code>.



مراجعة 11:20، 4 سبتمبر 2018

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

عرض الخيارات

استخدم خيار o- لأمر set لعرض كل خيارات الصدفة:

hsoub:~> set -o
allexport               off
braceexpand             on
emacs                   on
errexit                 off
hashall                 on
histexpand              on
history                 on
ignoreeof               off
interactive-comments    on
keyword                 off
monitor                 on
noclobber               off
noexec                  off
noglob                  off
nolog                   off
notify                  off
nounset                 off
onecmd                  off
physical                off
posix                   off
privileged              off
verbose                 off
vi                      off
xtrace                  off

انظر صفحات دليل info > قسم أوامر الصدفة المُضمَّنة > أمر Set، من أجل مزيد من التفصيل عن كل خيار، إذ ستجد أن كثيرًا من الخيارات بها اختزال وحيد المحرف (one-character)، فمثلًا خيار xtrace يساوي تحديد set -x.

تغيير الخيارات

يمكن ضبط خيارات الصدفة بشكل مختلف عند استدعاء الصدفة عن الشكل الافتراضي، أو يمكن ضبطها أثناء عمل الصدفة، كذلك قد توضع تلك الخيارات في ملفات إعدادات موارد الصدفة (shell resource configuration files). ينفِّذ الأمر التالي برنامجًا في وضع التوافق مع POSIX:

hsoub:~/scripts> bash --posix script.sh

لتغيير البيئة الحالية بشكل مؤقت أو للاستخدام داخل برنامج نصي، استخدم أمر set. وإن أردت تفعيل خيار فاسبقه بشرطة -، أما إن أردت تعطيله فاسبقه بعلامة الموجب +:

hsoub:~/test> set -o noclobber

hsoub:~/test> touch test

hsoub:~/test> date > test
bash: test: cannot overwrite existing file

hsoub:~/test> set +o noclobber

hsoub:~/test> date > test

يعرض المثال السابق خيار noclobber الذي يمنع عمليات إعادة التوجيه من إلغاء الملفات الحالية، وكذلك الأمر بالنسبة للخيارات وحيدة المحرف (one-character)، مثل u- الذي سيعامل المتغيرات التي أُلغي ضبطها على أنها أخطاء حين تُضبط، ويغلق الصدفة إن كانت غير تفاعلية عند حدوث تلك الأخطاء.

hsoub:~> echo $VAR
hsoub:~> set -u
hsoub:~> echo $VAR
bash: VAR: unbound variable

هذا الخيار مفيد في التقاط التعيينات الخاطئة للمحتوى إلى المتغيرات، إذ سيحدث نفس الخطأ مثلًا عند تعيين نص محرف (character string) إلى متغير صُرِّح بوضوح أنه يحمل قيَمًا لأعداد صحيحة فقط. مثال آخر يعرض خيار noglob الذي يمنع توسع المحارف الخاصة:

hsoub:~/testdir> set -o noglob

hsoub:~/testdir> touch *

hsoub:~/testdir> ls -l *
-rw-rw-r--    1 hsoub    hsoub		0 Feb 27 13:37 *

انظر أيضًا

مصادر