راهنمای آموزشی اسکریپت نویسی - مقدماتی

لطفا برای بهتر دیدن صفحه از firefox استفاده کنید
Bash Guide for Beginners Machtelt Garrels

راهنمای Bash برای نوآموزان

مستعارها »
« خلاصه

گزینه‌های بیشتر Bash

نمایش گزینه‌ها

ما قبلاً در باره یک جفت از گزینه‌های Bash که برای اشکالزدایی اسکریپت‌ها، سودمند می‌باشند، صحبت کردیم. در این بخش نگاه عمیق‌تری به گزینه‌های Bash خواهیم داشت .

از گزینه ‎ -o‎ با دستور set برای نمایش تمام گزینه‌های شل استفاده کنید:

willy:~> 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

صفحه‌های Bash Info ، بخش دستورات داخلی شل⬅ تنظیم دستورداخلی ، رابرای توضیحات هر یک از گزینه‌ها ملاحظه کنید. مقدار زیادی گزینه‌ها اختصار یک کاراکتری دارند: به طور نمونه گزینه xtrace، برابر با تعیین کردن ‎ set -x‎ می‌باشد.

تغییر گزینه‌ها

گرینه‌های شل هم برای حالت پیش‌فرض در موقع فراخونی شل، و هم در حین عملیات شل، می‌توانند به طور متفاوت تنظیم شوند. همچنین می‌توانند در فایل‌های پیکربندی شل درج گردند.

دستور زیر یک اسکریپت را در وضعیت سازگار با POSIX اجرا می‌کند:

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

برای تغییر محیط جاری به طور موقتی، یا برای استفاده در یک اسکریپت، ترجیحاً باید set را به کار ببریم. استفاده از - (خط تیره) برای فعال کردن یک گزینه، و + برای غیر فعال کردن:

willy:~/test> set -o noclobber

willy:~/test> touch test

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

willy:~/test> set +o noclobber

willy:~/test> date > test

مثال بالا گزینه noclobber را نمایش می‌دهد، که با تغییر جهت عملیات از رونویسی شدن فایل‌های موجود، ممانعت می‌کند. همین‌طور با گزینه‌های یک کاراکتری، به عنوان نمونه ‎ -u‎ که وقتی تنظیم شود، با متغیرهای تعریف نشده به عنوان خطا رفتار می‌کند، و شل غیرمحاوره‌ای در رویارویی با چنین خطاهایی خارج می‌شود:

willy:~> echo $VAR


willy:~> set -u

willy:~> echo $VAR
bash: VAR: unbound variable

این گزینه نیز برای تشخیص اختصاص محتوای ناصحیح به متعیرها، مفید است: همان خطا نیز رخ می‌دهد، به عنوان نمونه، وقتی یک رشته کاراکتری به متغیری اختصاص یابد، که به طور صریح به عنوان نگهدارنده عدد صحیح تعریف شده است.

آخرین مثال که در پایین آمده، گزینه noglob، که ازبسط یافتن کاراکترهای ویژه پیش‌گیری می‌کندرا نمایش می‌دهد:

willy:~/testdir> set -o noglob

willy:~/testdir> touch *

willy:~/testdir> ls -l *
-rw-rw-r--    1 willy    willy		0 Feb 27 13:37 *
مستعارها »
« خلاصه
ترجمه محمود پهلوانی