از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
تفاوت بین منبع یابی و اجرای اسکریپت شل چیست؟
سرفصلهای مطلب
تفاوت بین منبع یابی و اجرای اسکریپت شل چیست؟
برای درک تفاوت بین هر دو روش، ابتدا باید دانش کافی برای استفاده از هر دو روش داشته باشید، بنابراین ابتدا اجازه دهید تعریف اولیه آنها را یکی یکی بیان کنیم:
منبع نویسی Shell Script
منبع یابی یک اسکریپت پوسته راهی برای اجرای یک اسکریپت در محیط پوسته فعلی است. تمام دستورات یک اسکریپت در صورتی اجرا میشوند که مستقیماً در رابط خط فرمان تایپ شوند و منبعیابی یک اسکریپت همان کار را انجام دهد. به همین دلیل گزینه ای برای اسکریپت برای تغییر متغیرهای محیطی و تنظیم گزینه های پوسته در پوسته فعلی فراهم می کند.
برای توضیح بیشتر، من یک فایل آزمایشی برای اسکریپت bash ساختهام و سپس آن را اجرا کردم، در اینجا کد فایل bash را که ایجاد کردم آمده است:
صادرات اطلاعات من=“سلام لینوشینت”
در اینجا من یک متغیر محیطی ایجاد کردم که my_info است سلام Linuxhint در آن ذخیره می شود و سپس با استفاده از نحو داده شده آن را اجرا می کند:
از آنجایی که من یک فایل به نام bashfile.sh ایجاد کرده ام، بنابراین از نحو بالا به این صورت استفاده کردم:
زمانی که فایل اجرا شد، متغیر محیطی را فراخوانی کردم تا ببینم چه چیزی ذخیره شده است روی آن را برمی گرداند و مقدار ذخیره شده در آن را برمی گرداند که به وضوح نشان می دهد که تغییرات در متغیرهای محیط در پوسته فعلی باقی می مانند:
اجرای یک اسکریپت شل
اجرای یک اسکریپت پوسته راهی برای اجرای یک اسکریپت در یک پوسته جداگانه است. هنگامی که یک اسکریپت اجرا می شود، یک پوسته جدید ایجاد می شود، اسکریپت در آن پوسته اجرا می شود و پوسته زمانی که اسکریپت به پایان می رسد خاتمه می یابد. این نشان میدهد که هر تغییری که در متغیرهای محیطی یا گزینههای پوسته در اسکریپت ایجاد شود، پس از اتمام اسکریپت ادامه نخواهد داشت. برای توضیح بیشتر، من یک فایل آزمایشی برای اسکریپت bash ساختهام و سپس آن را اجرا کردم، در اینجا کد فایل bash را که ایجاد کردم آمده است:
صادرات اطلاعات من=“سلام لینوشینت”
در اینجا من به تازگی یک متغیر محیطی ایجاد کردم که my_info است سلام Linuxhint در آن ذخیره می شود و سپس با استفاده از نحو داده شده آن را اجرا می کند:
از آنجایی که من یک فایل به نام bashfile.sh ایجاد کرده ام، بنابراین از نحو بالا به این صورت استفاده کردم:
زمانی که فایل اجرا شد، متغیر محیطی را فراخوانی کردم تا ببینم چه چیزی ذخیره شده است روی و یک جای خالی برمی گرداند که به وضوح نشان می دهد که تغییرات ایجاد شده در متغیرهای محیطی یا گزینه های پوسته در اسکریپت پس از اتمام اسکریپت باقی نمی مانند:
برای نشان دادن بیشتر تفاوت در جدول زیر که برخی از تفاوت های کلیدی بین منبع یابی و اجرای یک فایل را مشخص می کند:
عوامل | اجرای یک اسکریپت پوسته | منبع نویسی پوسته |
نام مستعار و توابع | نام مستعار و توابع فقط در پوسته اسکریپت باقی می مانند. | نام مستعار و توابع در پوسته فعلی باقی می مانند. |
محیط | تغییرات در متغیرهای محیطی فقط در پوسته اسکریپت باقی می مانند. | تغییرات در متغیرهای محیطی در پوسته فعلی ادامه دارد. |
نحو | ./script-name.sh یا bash script-name.sh | . script-name.sh یا منبع script-name.sh |
ابزار اصلی | یک اسکریپت مستقل را بدون تأثیر بر پوسته فعلی اجرا کنید. | متغیرهای محیطی یا نام مستعار را برای پوسته تنظیم کنید |
نتیجه
دو راه برای اجرای اسکریپت bash وجود دارد، یکی از طریق منبعیابی آن و دیگری با اجرای آن، هر دو روش اهمیت خاص خود را دارند. تفاوت اصلی بین این دو این است که منبع فایل اسکریپت تغییرات متغیرهای محیطی را در پوسته فعلی نگه می دارد، در حالی که اجرای اسکریپت تغییرات را حفظ می کند.a
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم
زمان انتشار: 1402-12-29 05:23:03