#!/bin/bash به چه معناست و چرا باید از آن استفاده کرد

آخرین به‌روزرسانی: ۰۱/۰۲/۲۰۲۴
نویسنده: آندرس لیل

بین باش یعنی چی؟

اگر اولین قدم های خود را به عنوان یک اسکریپت در سیستم عامل های یونیکس برمی دارید، متوجه خواهید شد که چقدر از خط کد #!/bin/bash استفاده می شود. درک معنی و اهمیت آنها می تواند به شما در نوشتن اسکریپت های Bash کارآمدتر و قابل اعتمادتر کمک کند.. در این مدخل شما تمام مفاهیم اساسی را که برای درک بهتر آن باید تسلط داشته باشید، پیدا خواهید کرد.

به زبان ساده، خط #!/bin/bash، همچنین به عنوان "shabang" یا "hashbang" شناخته می شود. مکانیزمی است که به سیستم عامل می گوید از کدام برنامه برای تفسیر کدهای زیر استفاده کند. در حال حاضر، درک اینکه چگونه کار می کند یا زمانی که لازم است از آن استفاده کنید، می تواند کمی گیج کننده باشد. بنابراین، در زیر معنای کامل آن را با توجه به سایر اصطلاحات و مفاهیم مرتبط به تفصیل شرح می دهیم.

#!/bin/bash به چه معناست؟ مبانی

#!/bin/bash به چه معناست

برای درک معنای #!/bin/bash، مرور برخی مفاهیم اولیه مرتبط با برنامه نویسی مهم است. شایان ذکر است که Bash یک است زبان برنامه نویسی اسکریپت به طور گسترده در سیستم عامل های یونیکس مانند لینوکس و macOS استفاده می شود. همچنین به عنوان یک مفسر خط فرمان (شل) کار می کند که با آن می توانید اسکریپت ها و فایل های دیگر با پسوند .sh را اجرا کنید..

بنابراین، هنگام نوشتن یک اسکریپت به زبان Bash، مرسوم است که فایل را با خط #!/bin/bash شروع کنید. چون؟ چون اینجوری به سیستم عامل گفته می شود که از کدام مفسر دستوری برای شناسایی و اجرای کد استفاده کند. در این مورد خاص، به شما گفته می شود که فایل bash را با پوسته bash اجرا کنید.

محتوای اختصاصی - اینجا را کلیک کنید  تفاوت مفسر و کامپایلر

اکثر سیستم عامل های یونیکس به طور پیش فرض از پوسته bash به عنوان مفسر فرمان استفاده می کنند، بنابراین نیازی به تعیین آن نیست. با این حال، گاهی اوقات پوسته پیش فرض برای bash پیکربندی نمی شود، که اجرای فایل را غیرممکن می کند. از این رو، استفاده از خط #!/bin/bash به عنوان نقطه شروع برای همه اسکریپت های ساخته شده در Bash تمرین خوبی است. این تضمین می کند که پوسته صحیح اسکریپت را بدون توجه به محیطی که در آن اجرا می شود، اجرا می کند.

چرا به آن خط "شابنگ" یا "هش بانگ" می گویند؟

معنی #!/bin/bash

همانطور که در ابتدا گفتیم، خط #!/bin/bash در محیط های یونیکس به نام shabang یا hashbang شناخته می شود. این اصطلاح از اتحاد نام دو علامت اول (#!) ناشی می شود: "شارپ" یا "هشتگ" (#) و نماد "بنگ" (!). بنابراین، Shabang (she-bang) در محاسبات، دنباله ای از علامت عدد و کاراکترهای علامت تعجب در ابتدای یک اسکریپت برنامه نویسی است. 

در اصل، عملکرد یک شبانگ است به سیستم عامل بگویید که از کدام مفسر برای اجرای یک اسکریپت استفاده کند. این نماد به طور گسترده ای در یونیکس و لینوکس، جایی که اسکریپت ها برای خودکارسازی وظایف و مدیریت سیستم ضروری هستند. بعضی ها نمونه های رایج این دنباله کاراکترها آنها به شرح زیر هستند:

  • #!/bin/bash: اسکریپت را با استفاده از پوسته Bash با مسیر /bin/bash اجرا کنید.
  • #!/bin/sh: اسکریپت را با Bourne یا سایر پوسته های سازگار اجرا کنید.
  • #!/usr/perl-T: اسکریپت را با استفاده از perl با گزینه Taint checks اجرا کنید.
  • #!/bin/csh-f: اسکریپت را با استفاده از پوسته C یا یکی دیگر از موارد سازگار اجرا کنید.
  • #!/usr/bin/env python: اسکریپت را با استفاده از نسخه صحیح مفسر پایتون اجرا کنید.
محتوای اختصاصی - اینجا را کلیک کنید  مایکروسافت اولین پیش نمایش دات نت 10 را با ویژگی های کلیدی جدید منتشر کرد

چرا استفاده از خط shebang در برنامه نویسی بش مهم است؟

برنامه نویسی در مک بوک

هنگام ایجاد اسکریپت با Bash، نوشتن shebang در خط اول فایل بسیار مهم است. از این طریق، هنگام اجرای اسکریپت، سیستم عامل خط اول را می خواند و مفسر را شناسایی می کند. سپس سیستم برنامه bash را در حافظه بارگذاری می کند، که به نوبه خود اسکریپت را خط به خط می خواند، هر دستور را تفسیر کرده و آن را اجرا می کند.

همانطور که می‌بینید، با نشان دادن bash در خط shebang، از اجرای صحیح اسکریپت مطمئن می شوید. به یاد داشته باشید که مفسرهای فرمان دیگری مانند پایتون و پرل نیز وجود دارند که نحو و عملکرد متفاوتی دارند. اگر مشخص نکنید از کدام یک استفاده کنید، سیستم عامل باید حدس بزند که اجرای اسکریپت را کند یا غیرممکن می کند. در واقع، ممکن است مجبور شوید هر بار که اسکریپت اجرا می شود، مفسر را به صورت دستی مشخص کنید، که می تواند منجر به خطا شود.

محتوای اختصاصی - اینجا را کلیک کنید  تفاوت بین چند پردازش متقارن و چند پردازش نامتقارن

همچنین خط #!/bin/bash را به اسکریپت های bash اضافه کنید اجازه می دهد تا این فایل ها به راحتی بر روی سیستم عامل های مختلف اجرا شوند. البته برای این کار باید مفسر دستور Bash قبلا روی سیستم نصب شده باشد. لینوکس و macOS آن را در اکثر موارد به طور پیش فرض نصب کرده اند. از طرف دیگر، اگر از سیستم عامل مایکروسافت استفاده می کنید، باید مراحل خاصی را طی کنید Bash را روی ویندوز 10 نصب کنید e Bash را روی ویندوز 11 نصب کنید.

نتیجه گیری: خط #!/bin/bash

در پایان می توان گفت که خط #!/bin/bash برای هر اسکریپت Bash ضروری است. این نماد به شما اجازه می دهد تا مفسر دستوری را که برای اجرای خطوط کد زیر مورد نیاز است را نشان دهید. فراموش نکنید که همیشه آن را در ابتدای اسکریپت های خود قرار دهید تا از خواندن و اجرای صحیح آنها اطمینان حاصل کنید.