وبلاگ رسانگار
با ما حرفه ای باشید

سرور مجازی NVMe

زمان استفاده از Shebangs در اسکریپت پایتون

0 3
زمان لازم برای مطالعه: 3 دقیقه


معرفی

در برخی مواقع هنگام نوشتن کد پایتون، ممکن است با خطی در بالای برخی از اسکریپت ها برخورد کرده باشید که چیزی شبیه به این است: #!/usr/bin/env python3. این خط، که به عنوان شبانگ شناخته می شود، چیزی بیش از یک نظر عجیب و غریب است. در واقع نقش مهمی در روش اجرای اسکریپت ها در سیستم عامل های شبه یونیکس دارد.

شبانگ

بیایید با درک اینکه شیبنگ در واقع چیست شروع کنیم. شبانگ که به نام هش بانگ نیز شناخته می شود، یک دنباله دو کاراکتری است (#!) که در ابتدای یک اسکریپت ظاهر می شود. مسیری به مترجمی که باید برای اجرای اسکریپت استفاده شود دنبال می‌شود. در اینجا یک نمونه از یک اسکریپت ساده با یک shebang آمده است:



print("Hello, World!")

وقتی این اسکریپت را از خط فرمان اجرا می کنید، سیستم عامل از shebang استفاده می کند تا تعیین کند که باید از مفسر Python 3 واقع در /usr/bin/env python3 برای اجرای اسکریپت

توجه داشته باشید: Shebang باید اولین چیزی باشد که در پرونده وجود دارد. حتی یک فاصله یا نظر قبل از آن باعث نادیده گرفتن آن می شود.

چرا از Shebang در اسکریپت های پایتون استفاده کنیم؟

پس چرا باید در اسکریپت های پایتون خود را با شیبنگ ها درگیر کنید؟ دلیل اصلی حمل و نقل و راحتی است. اگر یک shebang را در اسکریپت خود قرار دهید، می توانید آن را مستقیماً از خط فرمان اجرا کنید بدون نیاز به فراخوانی صریح مفسر پایتون. این می تواند اجرای اسکریپت ها را آسان تر کند.

$ ./myscript.py

این راحت تر از تایپ کردن است python3 myscript.py هر بار که می خواهید اسکریپت خود را اجرا کنید. همچنین به این معنی است که از اسکریپت شما می توان به همان روشی استفاده کرد command-line ابزاری که ادغام با سایر اسکریپت ها و ابزارها را آسان تر می کند.

پیشنهاد می‌کنیم بخوانید:  کوروتین ها در پایتون

روش استفاده از Shebang در اسکریپت های پایتون

استفاده از shebang در اسکریپت های پایتون ساده است. فقط آن را به عنوان اولین خط اسکریپت خود اضافه کنید و سپس مسیر مفسر پایتون را که می خواهید استفاده کنید، اضافه کنید. در اینجا یک مثال است:




در این مثال و نمونه های قبلی در سراسر این بایت، /usr/bin/env python3 مسیر مفسر پایتون 3 است. را env دستور برای یافتن مفسر پایتون در سیستم استفاده می شود PATH.

توجه داشته باشید: بهتر است استفاده کنید /usr/bin/env python3 به جای کدگذاری سخت مسیر مفسر پایتون (مانند /usr/bin/python3). این اطمینان حاصل می کند که اسکریپت از هر کدام از مفسرهای پایتون برای اولین بار در سیستم ظاهر می شود استفاده می کند PATH، که اسکریپت شما را در سیستم های مختلف قابل حمل تر می کند.

زمان استفاده از Shebangs

شبانگ (#!) همیشه در اسکریپت های پایتون مورد نیاز نیست، اما زمان های خاصی وجود دارد که مفید است. اگر اسکریپت خود را مستقیماً از terminal، shebang می تواند کمک کند.

$ python3 my_script.py

با shebang می توانید اسکریپت خود را قابل اجرا کنید و آن را به صورت زیر اجرا کنید:

$ ./my_script.py

کمی تمیزتر است، اینطور نیست؟ این به ویژه زمانی مفید است که شما در حال نوشتن اسکریپت هایی هستید که به طور مکرر مورد استفاده قرار می گیرند، یا توسط کاربران دیگری که ممکن است ندانند (یا اهمیتی نمی دهند) از کدام مترجم باید استفاده کنند.

مشخصات Shebang در پوسته های مختلف

Shebang در تمام پوسته های یونیکس تقریباً یکسان عمل می کند. با این حال، برخی از تفاوت های ظریف وجود دارد که قابل ذکر است. به عنوان مثال، در پوسته Bourne (sh) و بش، شبانگ باید همان خط اول فیلمنامه باشد. اگر قبل از shebang فضای خالی یا نویسه دیگری وجود داشته باشد، شناسایی نخواهد شد.

پیشنهاد می‌کنیم بخوانید:  چگونه با استفاده از هوش مصنوعی نظرات مطبوعات مالی را ایجاد کنیم

در پوسته های دیگر مانند csh و tcsh، شبنگ اصلا شناخته نمی شود. در این موارد، شما باید به صراحت با مترجم تماس بگیرید.

همچنین به خاطر داشته باشید که همه سیستم ها پوسته پیش فرض یکسانی ندارند. بنابراین اگر اسکریپت شما از ویژگی های خاص یک پوسته خاص (مانند آرایه ها در Bash) استفاده می کند، باید آن پوسته را در shebang خود مشخص کنید، مانند این: #!/bin/bash.

نتیجه

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

(برچسب‌ها به ترجمه)# python



منتشر شده در 1402-12-27 14:26:04

امتیاز شما به این مطلب
دیدگاه شما در خصوص مطلب چیست ؟

آدرس ایمیل شما منتشر نخواهد شد.

لطفا دیدگاه خود را با احترام به دیدگاه های دیگران و با توجه به محتوای مطلب درج کنید