Random shi- tutorials
208 subscribers
234 photos
28 videos
12 files
556 links
محتوای مفید برنامه نویسی و لینوکسی از سراسر دنیا ✍️
جوین شدن شما موجب شادی روح و روان ما میگردد😗
Download Telegram
Forwarded from Shayan GeeDook🐧
⚡️ #! یا Shebang چیه؟ چرا انقدر مهمه؟
تا حالا به اول بعضی از فایل‌های اسکریپت نگاه کردی و دیدی این دوتا کاراکتر مرموز #! اون بالا نشستن؟
مثل این:

#!/bin/bash


خب، این همون Shebang معروفه.
ترکیبی از # و ! که کنار هم تبدیل می‌شن به یه خط جادویی تو دنیای یونیکس و لینوکس!

👑 داستان از کجا شروع شد؟

ماجرا برمی‌گرده به دهه ۸۰ میلادی، وقتی که سیستم‌عامل‌های شبه‌یونیکس داشتن رشد می‌کردن و توسعه‌دهنده‌ها نیاز داشتن بدونن یه اسکریپت با چه برنامه‌ای باید اجرا بشه.

توی سیستم‌عامل‌های یونیکسی، وقتی شما یه فایل رو قابل اجرا (chmod +x) می‌کنی و سعی می‌کنی اجراش کنی، سیستم باید بفهمه این فایل توسط چه تفسیری (interpreter) اجرا بشه. Bash؟ Python؟ Perl؟ Node؟


اینجاست که shebang وارد می‌شه.
این خط اول فایل، به سیستم‌عامل می‌گه: «اگه خواستی این فایل رو اجرا کنی، با این برنامه اجراش کن!»

مثال:

#!/usr/bin/python3
print("Hello, world!")

این یعنی اجراش با مفسر پایتون نسخه ۳.

🧠 چرا بهش می‌گن Shebang؟
واژه‌ی "Shebang" ترکیبیه از:

sh → اشاره به sh که همون Unix shell اولیه بوده

bang → اسمی قدیمی برای کاراکتر !

بنابراین #! می‌شه: "sh-bang"

(البته بعضی جاها بهش hashbang یا pound-bang هم می‌گن)


🎯 چرا انقدر مهمه؟
قابل حمل بودن: یه اسکریپت با روی هر سیستم یونیکسی کار می‌کنه، بدون اینکه بدونی کدوم شله

🛠 کنترل بیشتر: می‌تونی دقیقاً مشخص کنی با کدوم نسخه از مفسر اجرا بشه (مثلاً #!/usr/bin/env python3)

💻 استاندارد بودن: خیلی از ابزارها و سیستم‌ها به خط اول فایل حساسن. اگه درست نباشه، ممکنه اسکریپت اجرا نشه


💡 کاربرد جالب env توی shebang

#!/usr/bin/env python3

اینجوری سیستم خودش مسیر Python 3 رو از متغیرهای محیطی پیدا می‌کنه. برای پورتابل بودن خیلی بهتر از مسیرهای مستقیمه.

🧩 چرا هنوز ویکی‌پدیای فارسیش نیست؟!
با اینکه این مفهوم برای لینوکسی‌ها و برنامه‌نویس‌ها بسیار مهمه، توی ویکی‌پدیای فارسی هنوز صفحه‌ای به اسم Shebang یا #! وجود نداره!
وقتشه که یکی اینو به فارسی بنویسه — شاید تو باشی!

🏷 هشتگ‌ها برای پست:
#Shebang #Linux #Unix #اسکریپت #Bash #Python #DevTips #Geedook #OpenSource


🔖 منابع برای مطالعه بیشتر:

github

Wikipedia (EN) - Shebang (Unix)

stackoverflow

Linux Handbook - What is Shebang


Shayan-GeeDook 🐧
Please open Telegram to view this post
VIEW IN TELEGRAM