بررسی گزینه انتخاب جدید در پوسته

گلبول‌های پوسته

اگر بخواهیم به‌زبان لینوکس صحبت کنیم، عمل globbing کاری است که شل در مواجهه با یک دستور wildcard (مثلا *یا ?) انجام می‌دهد. گلابینگ، تطبیق الگوی wildcard و بازگردانیدن نام فایل و یا نام دایرکتوری و جایگزینی آن با دستوری است که با الگوی آن تطبیق پیدا می‌کند.
کد خبر: ۳۳۰۱۶۸

 نگارش چهارم Bash گزینه جدیدی به globbing اضافه کرده است که globstar نام دارد و الگوی ** را به‌ترتیب متفاوتی مطابقت می‌دهد.

به‌طور کل، وقتی از گزینه ** در دستور خود استفاده می‌کنید، بش فرقی میان آن یا * قائل نمی‌شود. دستور زیر را ببینید:‌

ls -l $

total 8

-rw-r--r-- 1 mitch users 0 2010-05-05 10:36 a

-rw-r--r-- 1 mitch users 0 2010-05-05 10:36 b

drwxr-xr-x 2 mitch users 4096 2010-05-05 10:36 c

drwxr-xr-x 2 mitch users 4096 2010-05-05 10:36 d

حالا اگر دستورات زیر را وارد کنید:

** for i in $

» do

» echo $i

» done

خروجی زیر را مشاهده خواهید کرد.

a

b

c

d

حالا اگر تنظیمات globstar را با دستور زیر فعال کنید:

$ shopt -s globstar

و حلقه بالا را دوباره تکرار کنید، عبارت زیر را دریافت خواهید کرد:

a

b

c

c/e

d

d/f

اگر globstar روشن باشد، در این حالت بش تمام دایرکتوری‌ها را می‌گردد. به این توجه بکنید که این کار شامل تمام سطوح یک دایرکتوری می‌شود و فقط تا یک سطح را بررسی نمی‌کند. می‌توان با دستور shopt متوجه شد که آیا globstar روشن است یا خیر. تنها کافی است عبارت زیر را وارد کنید:

shopt $

force_fignore on

globstar on

gnu_errfmt off

یا اگر می‌خواهید آن را در اسکریپتی به‌کار بگیرید، از گزینه -q برای shopt استفاده کنید. برای مثال کد زیر را ببینید:

if shopt -q globstar; then

newsQrCode
ارسال نظرات در انتظار بررسی: ۰ انتشار یافته: ۰

نیازمندی ها