خط فرمانگنو/لینوکس

بسط (Expansion) در خط فرمان لینوکس

زمانی که شما یک خط فرمان در ترمینال می‌نویسید و کلید Enter را فشار می‌دهید، Bash چندین پروسه را قبل از اجرای فرمان، انجام می‌دهد. مواردی را دیده‌ایم که چگونه یک کاراکتر کوچک مثل * معانی زیادی می‌تواند در Shell داشته باشد. پروسه‌ای که باعث انجام این کار می‌شود را بسط (Expansion) می‌نامند.

بسط (Expansion)

با بسط (Expansion) شما چیزی را وارد خط فرمان می‌کنید و قبل از اجرا و انجام، آن به چیز دیگری در Shell تبدیل می‌شود. در ادامه نگاهی به فرمان echo خواهیم انداخت.

echo فرمانی درون‌ساخت در Shell بوده که وظیفه بسیار ساده‌ای دارد. فرمان echo آرگومان متنی را که به آن می‌دهیم در خروجی استاندارد چاپ می‌کند:

پس هر آرگومانی که به echo بدهیم برای ما نشان داده می‌شود. مثالی دیگر را امتحان می‌کنیم:

پس چرا فرمان echo کاراکتر * را برای ما چاپ نکرد؟ اگر خاطرتان باشد در مبحث Wildcardها کاراکتر * چنین معنایی داشت: «هر کاراکتری را در نام فایل تطبیق بده.» حال Shell قرار است این کار را چگونه انجام دهد.

پاسخ اینجاست که Shell عملگر * را قبل از اجرای فرمان echo به چیز دیگری (در این مثال نام فایل در دایرکتوری جاری) بسط می‌دهد. زمانی که شما کلید Enter را می‌فشارید، Shell به‌صورت خودکار هر کاراکتر دارای صلاحیت را در خط فرمان بسط می‌دهد و به همین دلیل است که هیچگاه خود عملگر * در خروجی دیده نخواهد شد؛ بلکه نتیجه عمل آن مشاهده می‌شود. البته توجه داشته باشید که روش‌هایی برای نادیده گرفتن بسط وجود دارد که فعلاً به این موضوع نخواهیم پرداخت.

منبع: لینوکس‌سیزن نوشته فرشید نوتاش حقیقت

فرشید نوتاش حقیقت

همیشه نیازمند یک منبع آموزشی فارسی در حوزه نرم‌افزارهای آزاد/ متن‌باز و سیستم‌عامل گنو/لینوکس بودم. از این رو این رسالت رو برای خودم تعریف کردم تا رسانه «محتوای باز» رو بوجود بیارم.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.

این سایت از اکیسمت برای کاهش هرزنامه استفاده می کند. بیاموزید که چگونه اطلاعات دیدگاه های شما پردازش می‌شوند.

همچنین ببینید
بستن
دکمه بازگشت به بالا