آموزش خط فرمان: قسمت نهم، بسط (Expansion)

نوشته شده توسط فرشید نوتاش حقیقت.

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

بسط (Expansion)

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

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

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

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

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

منبع: کتاب The Linux Command Line نوشته William E. Shotts

نوشته آموزش خط فرمان: قسمت نهم، بسط (Expansion) اولین بار در لینوکس سیزن پدیدار شد.


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