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

سرور مجازی NVMe

تفاوت بین منبع یابی و اجرای اسکریپت شل چیست؟

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


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

تفاوت بین منبع یابی و اجرای اسکریپت شل چیست؟

برای درک تفاوت بین هر دو روش، ابتدا باید دانش کافی برای استفاده از هر دو روش داشته باشید، بنابراین ابتدا اجازه دهید تعریف اولیه آنها را یکی یکی بیان کنیم:

منبع نویسی Shell Script

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

برای توضیح بیشتر، من یک فایل آزمایشی برای اسکریپت bash ساخته‌ام و سپس آن را اجرا کردم، در اینجا کد فایل bash را که ایجاد کردم آمده است:

# bashfile.sh

صادرات اطلاعات من=“سلام لینوشینت”

در اینجا من یک متغیر محیطی ایجاد کردم که my_info است سلام Linuxhint در آن ذخیره می شود و سپس با استفاده از نحو داده شده آن را اجرا می کند:

. <bash-file-name>

از آنجایی که من یک فایل به نام bashfile.sh ایجاد کرده ام، بنابراین از نحو بالا به این صورت استفاده کردم:

. bashfile.sh

زمانی که فایل اجرا شد، متغیر محیطی را فراخوانی کردم تا ببینم چه چیزی ذخیره شده است روی آن را برمی گرداند و مقدار ذخیره شده در آن را برمی گرداند که به وضوح نشان می دهد که تغییرات در متغیرهای محیط در پوسته فعلی باقی می مانند:

پیشنهاد می‌کنیم بخوانید:  دستور Bash `set -x`

تفاوت بین منبع یابی و اجرای اسکریپت شل چیست؟

اجرای یک اسکریپت شل

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

# bashfile.sh

صادرات اطلاعات من=“سلام لینوشینت”

در اینجا من به تازگی یک متغیر محیطی ایجاد کردم که my_info است سلام Linuxhint در آن ذخیره می شود و سپس با استفاده از نحو داده شده آن را اجرا می کند:

./<bash-file-name>

از آنجایی که من یک فایل به نام bashfile.sh ایجاد کرده ام، بنابراین از نحو بالا به این صورت استفاده کردم:

./bashfile.sh

زمانی که فایل اجرا شد، متغیر محیطی را فراخوانی کردم تا ببینم چه چیزی ذخیره شده است روی و یک جای خالی برمی گرداند که به وضوح نشان می دهد که تغییرات ایجاد شده در متغیرهای محیطی یا گزینه های پوسته در اسکریپت پس از اتمام اسکریپت باقی نمی مانند:

تفاوت بین منبع یابی و اجرای اسکریپت شل چیست؟تفاوت بین منبع یابی و اجرای اسکریپت شل چیست؟

برای نشان دادن بیشتر تفاوت در جدول زیر که برخی از تفاوت های کلیدی بین منبع یابی و اجرای یک فایل را مشخص می کند:

عوامل اجرای یک اسکریپت پوسته منبع نویسی پوسته
نام مستعار و توابع نام مستعار و توابع فقط در پوسته اسکریپت باقی می مانند. نام مستعار و توابع در پوسته فعلی باقی می مانند.
محیط تغییرات در متغیرهای محیطی فقط در پوسته اسکریپت باقی می مانند. تغییرات در متغیرهای محیطی در پوسته فعلی ادامه دارد.
نحو ./script-name.sh یا bash script-name.sh . script-name.sh یا منبع script-name.sh
ابزار اصلی یک اسکریپت مستقل را بدون تأثیر بر پوسته فعلی اجرا کنید. متغیرهای محیطی یا نام مستعار را برای پوسته تنظیم کنید
پیشنهاد می‌کنیم بخوانید:  دستکاری رشته Bash

نتیجه

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

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

زمان انتشار: 1402-12-29 05:23:03

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

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

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