بلاگ پارسی سلمان م.

گنو، تریسکل، نرم‌افزار آزاد، ای‌مکس، اوبونتو، مهندسی عمران، برنامه‌نویسی، گنو/لینوکس، ...

بلاگ پارسی سلمان م.

گنو، تریسکل، نرم‌افزار آزاد، ای‌مکس، اوبونتو، مهندسی عمران، برنامه‌نویسی، گنو/لینوکس، ...

آخرین نظرات

شی‌بنگ چیست؟

جمعه, ۲ فروردين ۱۳۹۲، ۰۴:۳۴ ب.ظ
خب دوستان عزیز، بعض از مدت‌ها تونستم یه وقت آزاد پیدا کنم و یه پست جدید بذارم :) امیدوارم که مفید باشه. تو این پست می‌خوایم کمی در رابطه با شی‌بنگ صحبت کنیم.
چی؟ این دیگه چه کلمه‌ای هست؟ شی‌بنگ فارسی شده‌ی کلمه‌ی Shebang تو انگلیسی هست و به جفت علامت زیر اطلاق می‌شه:
#!
به جز شی‌بنگ بهش هش‌بنگ (hashbang) یا ... هم گفته می شود.
کجا ازش استفاده می‌شه؟ از این جفت علامت توی برنامه‌نویسیِ برنامه‌‌هایی که می‌خوایم تحت ترمینال اجرا بشن، استفاده می‌کنیم.
یه مثال می‌زنی؟ به طور مثال، می‌خوایم برنامه‌ای رو به زبان «پایتون سه» بنوسیم تا تحت ترمینال اجرا می‌شه، کد زیر رو توی یک فایل به اسم مثلن mesal.py و دیرکتوری HOME ذخیره می‌کنیم.
#!/usr/bin/env python3
print ('Salam Donyaaaaa')
خب حالا این برنامه‌رو چجوری اجرا کنیم؟ برای اجرا باید ابتدا به این فایل اجازه‌ی اجرا شدن بدیم. چون برنامه‌مون برنامه‌ی خاصی نیست و خودمون هم نوشتیمش، با دستور زیر بهش اجازه می‌دیم که هرکی خواست اجراش کنه. (البته این اجازه رو نباید به هر فایلی که از این‌ور اون‌ور گیر آوردیم، بدیم)
$ chmod a+x mesal.py
خب الان که اجازه‌ی اجرا شدن اون توسط هر بنی‌بشری بهش داده شده :) از دو طریق می‌شه اون رو اجرا کنیم.
روش اول: توی این روش باید به صورت کاملن مشخص بگیم که خانم مفسر پایتون سه، تو رو جون هرکی دوست داری برو اجراش بکن :) .
$ python3 mesal.py
توی این روش چون داریم از روش «التماس به صورت مستقیم» استفاده می‌کنیم! و اسم python3 رو آوردیم، خط اول برنامه که شی‌بنگ داره بلا استفاده می‌مونه.
روش دوم: توی این روش، می‌تونیم از طریق دستور زیر برنامه رو اجرا کنیم.
$./mesal.py
یا از طریق دستور زیر (که با دستور بالا یکی هست):
$ /home/salman/mesal.py
توی این روش، بر خلاف روش اول، ما به طور مستقیم نرفتیم که التماس خانم پایتون سه بکنیم که بیا و برنامه رو برای ما اجرا کن! در یک حرکت کاملن حق‌به‌جانبانه، می‌گیم که، برنامه‌ی mesal.py اجرا بشو ! و از اون‌جایی که این mesal.py خیلی خنگ تشریف دارن! نمی‌دونن برن التماس کی کنن که برنامه رو اجرا کنه، برای همین ما قبلن توی خط اول برنامه بهش گفتیم که کجا بره و به کی بگه که برنامه رو اجرا کنه.

شد یه بار عین آدم حرف بزنی؟ درست بگو.
شی‌بنگ یک جفت علامت هست و در برنامه‌هایی استفاده می‌شه که می خواهیم برنامه‌ای که تحت ترمینال اجرا می‌شه به صورت خودکار هنگام اجرا شدن، مفسر را تشخیص دهد و نیازی نباشد که هر بار برای اجرا شدن، یه صورت مشخص مفسر را مشخص کنیم. تنها با اجرا کردن برنامه، خودش مفسر را جست‌و‌جو و پیدا می‌کند. (در صورتی جست‌و‌جو می‌کند که از دقیقن دستور بالا استفاده کرده باشیم).

نکته:  طبق اطلاع رسانی دوست خوبمون آقای امامیان، شی‌بنگ مخفف کلمه‌های زیر است.
 (#)SHarp
 (!)BANG


برای اطلاعات بیشتر: +
  • موافقین ۰ مخالفین ۰
  • ۹۲/۰۱/۰۲
  • ۷۲۰ نمایش
  • سلمان محمدی

نظرات (۴)

  • سیدمسعودامامیان
  • سلام . تشکر.فقط یک نکته ای بگم که این کلمه از 2 کلمه زیر بدست میاد :

    :Shebang
     (#)SHarp
     (!)BANG
    پاسخ:
    خیلی ممنون. من نمی‌دونستم.
  • محسن رشیدی
  • من همیشه از این شی بنگ استفاده می کردم بدون اینکه بدونم به چه درد می خوره!
    حالا از کجا دونستی مفسر پایتون خانومه؟ D-:
    پاسخ:
    همین‌جوری گفتم ;)
    مثل اینکه هر سال یه نفر باید بیاد برای این پست کامنت بزاره!
    ممنون خوب بود.
    عاقا من یه اسکریپت پایتون دارم هلو ! چجوری تو ترمینال کالی لینوکس اجراش کنم از این دستور استفاده میکنم:
    python file.py
    خود فایل اسکریپت پایتون رو واسم باز میکنه اجراش نمیکنه چه کنم من؟
    ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
    شما میتوانید از این تگهای html استفاده کنید:
    <b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
    تجدید کد امنیتی