Bash چیست ؟
یک زبان سکریپتینگ و نیز یک محیط فرمان است که به طور گسترده در سیستمعاملهای مبتنی بر یونیکس مانند Linux و macOS استفاده میشود. و توسط برایان فاکس در سال ۱۹۸۹ در پروژه گنو/لینوکس معرفی شد.
ویژگیهای اصلی Bash عبارتند از:
- محیط فرمان: Bash میتواند به عنوان یک محیط فرمان تعاملی برای اجرای دستورات مورد استفاده قرار گیرد.
- زبان سکریپتنویسی: Bash یک زبان سکریپتنویسی قدرتمند است که به شما امکان میدهد برنامههای کوچک و بزرگ را با استفاده از ساختارهای کنترلی، حلقهها، توابع و غیره بنویسید.
- دستورات داخلی: Bash دارای مجموعهای از دستورات داخلی است که برای کارهای پایهای مانند مدیریت فایلها، کنترل فرایندها و تنظیمات محیط استفاده میشوند.
- تفسیر متن اسکریپت: Bash میتواند فایلهای اسکریپت را تفسیر کند و آنها را اجرا کند.
- گسترش نام فایل: Bash قادر است نامهای فایل را با استفاده از کاراکترهای جایگزین گسترش دهد.
- استفاده از لولهها و ریدایرکتها: Bash از لولهها (|) و ریدایرکتها (> و <) پشتیبانی میکند که به شما امکان میدهد خروجی یک برنامه را به ورودی برنامه دیگری هدایت کنید.
- تاریخچه و کاملسازی تب: Bash دارای تاریخچه دستورات است و همچنین قابلیت کاملسازی تب را برای نامهای فایل و دستورات ارائه میدهد.
- محیط متغیرها: Bash از متغیرهای محیطی استفاده میکند که میتوانند برای ذخیره و دسترسی به مقادیر کاربردی مورد استفاده قرار گیرند.
- جایگزینی فرمان: Bash امکان جایگزینی خروجی یک فرمان را در دستور دیگر فراهم میکند.
- سازگاری با POSIX: Bash تا حد زیادی با استاندارد POSIX برای زبانهای سکریپتنویسی شل سازگار است.
Bash به طور گسترده برای اتوماسیون وظایف، مدیریت سیستم، پردازش متن و انواع دیگر کارهای مرتبط با خط فرمان در محیطهای یونیکس/لینوکس مورد استفاده قرار میگیرد. همچنین بسیاری از ابزارهای توسعه نرمافزار مانند سیستمهای کنترل نسخه، ابزارهای ساخت
توضیح Bash printf :
printf
یک دستور داخلی در Bash است که برای چاپ فرمتشده در خروجی استفاده میشود. این دستور مشابه تابع printf
در زبانهای برنامهنویسی مانند C است و از یک رشته فرمت و یک یا چند آرگومان برای جایگزینی در رشته فرمت استفاده میکند.
سینتکس printf
در Bash به صورت زیر است:
printf format [arguments]
format
: یک رشته فرمت است که شامل رشتههای ثابت و شناساگرهای فرمت برای جایگزینی آرگومانها میباشد.arguments
: یک یا چند آرگومان برای جایگزینی در رشته فرمت.
برخی از شناساگرهای فرمت رایج در printf
عبارتند از:
%s
: برای چاپ یک رشته%d
: برای چاپ یک عدد صحیح%f
: برای چاپ یک عدد اعشاری%x
یا%X
: برای چاپ یک عدد در مبنای ۱۶ (هگزادسیمال)%%
: برای چاپ یک درصد (%)
برای مثال:
# چاپ یک رشته و یک عدد صحیح printf "Name: %s, Age: %d\n" "Alice" 25
# چاپ یک عدد اعشاری با دو رقم اعشار printf "Pi = %.2f\n" 3.14159
# چاپ یک عدد در مبنای ۱۶ printf "Hex value: %X\n" 42
خروجی:
Name: Alice, Age: 25
Pi = 3.14
Hex value: 2A
printf
همچنین میتواند برای فرمتبندی خروجی با عرضهای مشخص، پرکنندههای سفارشی و سایر گزینههای پیشرفتهتر استفاده شود.
این دستور به ویژه در اسکریپتهای Bash و برای چاپ خروجی فرمتشده مفید است، زیرا نسبت به echo
کنترل بیشتری بر فرمتبندی خروجی ارائه میدهد.
حال چگونه یک متغیر را با Bash printf چاپ کنیم :
برای چاپ یک متغیر با استفاده از printf
در Bash، میتوانید مانند سایر آرگومانها، نام متغیر را در آرگومانهای printf
قرار دهید. Bash به طور خودکار مقدار متغیر را جایگزین میکند.
مثال:
name="Alice" age=25 printf "Name: %s, Age: %d\n" "$name" "$age"
در این مثال، $name
و $age
متغیرهای Bash هستند. printf
مقادیر این متغیرها را در رشته فرمت جایگزین میکند.
خروجی:
Name: Alice, Age: 25
یک مثال دیگر با استفاده از متغیرهای محیطی:
user_home=$HOME printf "User home directory: %s\n" "$user_home"
در این مثال، $HOME
یک متغیر محیطی است که مسیر خانه کاربر را نگهداری میکند. printf
مقدار این متغیر را در رشته فرمت جایگزین میکند.
خروجی ممکن است:
User home directory: /home/username
نکته مهم: برای استفاده از متغیرهای Bash در printf
، باید نام متغیر را با $
شروع کنید و در صورت لزوم برای جلوگیری از تفسیر اشتباه توسط شل، آن را در داخل دابل کوتیشن ("..."
) قرار دهید.