از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
شبنگ باش: با مثال توضیح داده شد
سرفصلهای مطلب
Bash یک مترجم زبان دستوری است. بسیاری از سیستم عامل ها را شامل می شوند bash به عنوان مفسر دستور پیش فرض، به ویژه بیشتر موارد GNU/سیستم های لینوکس برنامه نویسی Bash روشی برای خودکارسازی مجموعه ای از دستورات است که در غیر این صورت به صورت تعاملی یک به یک اجرا می شوند.
در این راهنما، بررسی کنید که shebang چیست bash است و روش استفاده از آن
شبانگ باش:
که در bash برنامه نویسی، Shebang راهی است برای اعلام اینکه سیستم عامل از چه مفسری برای تجزیه بقیه فایل استفاده می کند. شبانگ با مجموعه ای از شخصیت های “#!” مشخص می شود. (بدون نقل قول).
در اینجا یک تفکیک سریع از دستورالعمل مترجم Shebang است.
به عنوان مثال، اگر قرار است یک اسکریپت با استفاده از پوسته Bash تجزیه شود، دستورالعمل مفسر Shebang به این شکل خواهد بود.
دستورالعمل مترجم Shebang دارای ویژگی های خاصی است.
- باید خط اول فیلمنامه باشد.
- باید با یک شبانگ (#!) شروع شود.
- ممکن است بعد از shebang فضای خالی وجود داشته باشد یا نباشد (#!).
- مفسر مسیر کامل یک فایل باینری خواهد بود.
- ممکن است آرگومان های مفسر وجود داشته باشد یا نباشد.
در اینجا فهرست کوتاهی از برخی از رایج ترین دستورالعمل های مترجم Shebang آورده شده است.
- #!/صندوقچه/bash: اسکریپت با استفاده از آن تجزیه خواهد شد bash.
- #!/usr/bin/python: اسکریپت با استفاده از python دودویی.
- #!/usr/bin/env perl: اسکریپت با استفاده از پرل قابل اجرا موقعیت مکانی پرل قابل اجرا توسط env فرمان
استفاده از Shebang Bash:
اسکریپت ها نمی توانند Shebang داشته باشند bash. هر گونه اسکریپت با استفاده از مفسر پیش فرض تجزیه می شود. مثلا، bash مفسر پیش فرض برای است bash و sh برای zsh. در حالی که اکثر سیستم های یونیکس/لینوکس این کار را انجام داده اند bash به عنوان پیش فرض، کاربران گزینه هایی برای استفاده از دیگران دارند. در چنین سناریویی، بدون اعلام مفسر، اسکریپت ممکن است وظیفه ترجیحی خود را انجام ندهد.
دو روش برای استفاده از دستورالعمل Shebang برای اعلام مترجم وجود دارد. اولین مورد این است که مسیر فایل را به فایل اجرایی اعلام کنید.
روش دیگر استفاده از env ابزار برای مکان یابی فایل اجرایی
مزیت استفاده از ابزار env این است که در متغیر محیطی $PATH کاربر فعلی به دنبال فایل اجرایی می گردد. در این مثال، env به دنبال عبارت خواهد بود bash. اگر بیش از یکی باشد bash قابل اجرا در متغیر $PATH اعلام شده است، سپس اولین مورد استفاده خواهد شد.
همانطور که گفته شد، شبانگ bash همچنین از آرگومان های اجرایی پشتیبانی می کند. به عنوان مثال برای استفاده bash با حالت اشکال زدایی، دستورالعمل مترجم Shebang به این شکل خواهد بود.
وقتی صحبت از استفاده می شود env برای شبانگ bash، افزودن یک آرگومان اجرایی نیاز به استفاده از گزینه “set” دارد. به عنوان مثال، یکی از موارد زیر استفاده خواهد شد bash با فعال بودن حالت اشکال زدایی
$ تنظیم -ایکس
نمونه اسکریپت:
ما اصول اولیه شبانگ را مورد بحث قرار داده ایم bash. وقت آن است که آن را عملی کنید. بیایید نگاهی به اجرای شبانگ بیندازیم bash.
ویرایشگر متن مورد نظر خود را اجرا کنید و اسکریپت زیر را تایپ کنید:
$ echo “سلام_جهان_باش”
فایل را ذخیره کنید. برای اجرای اسکریپت باید به عنوان یک فایل اجرایی علامت گذاری شود. دستور زیر را اجرا کنید:
اسکریپت را اجرا کنید:
خیلی سخت نیست، درست است؟ حالا بیایید سعی کنیم از Shebang مختلف استفاده کنیم bash اصطلاحات. موارد زیر را امتحان کنید:
$ تنظیم -ایکس
$ echo “hello_world_bash_debug”
غلبه بر شبانگ باش:
در حالی که شبانگ bash مفسری را برای استفاده تعریف می کند، در شرایط خاص، ممکن است بخواهید از مفسر دیگری استفاده کنید. با مشخص کردن صریح مفسر در پوسته، میتوان مفسر تعریفشده توسط اسکریپت را نادیده گرفت.
به عنوان مثال، به اسکریپت زیر نگاه کنید:
$ echo “Hello_world_sh”
به طور پیش فرض، با استفاده از آن اجرا می شود ش. برای اجرای آن با استفاده از bash، از روش زیر استفاده کنید:
توجه داشته باشید که برای موارد استفاده معمولی فقط از پیش فرض استفاده کنید ش یا bash مفسر به اندازه کافی خوب است و فراخوانی مربوط نیست.
افکار نهایی:
شبانگ bash یک مفهوم بسیار ساده است برای bash اسکریپت نویسی، درک و پیاده سازی آن بسیار مهم است.
به اسکریپت نویسی Bash بیشتر علاقه دارید؟ این راهنمای مبتدیان را بررسی کنید روی چگونه ساده بنویسیم bash اسکریپت
محاسبات مبارک!
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم
زمان انتشار: 1402-12-31 03:04:03