وقتی اسکریپتی را از داخل اسکریپت دیگری احضار میکنید، اسکریپت جدید محیط اسکریپت اصلی را به ارث میبرد، درست مانند هر برنامه دیگر اجرا شده در UNIX. تشریح آنکه این به چه معناست، خارج از حوزه این راهنما میباشد، اما بیش از همه، محیط را میتوانید دایرکتوری کاری فعلی، توصیفگرفایلهای باز، ، و متغیرهای محیط که میتوانید آنها را با دستور export ببینید، در نظر بگیرید.
وقتی اسکریپتی که شما اجرا کردهاید(یا هر برنامه دیگری برای آن منظور) اجرایش به پایان میرسد محیطش دور انداخته میشود. محیط اسکریپت اول همان خواهد بود که قبل از فراخوانی اسکریپت دوم بود، اگرچه برخی پارامترهای ویژه bash(از قبیل مقدار متغیر
در پرسش و پاسخهای رایج:
من سعی میکنم اسکریپتی بنویسم که دایرکتوری جاری را تغییر دهد( یا یک متغیر را تنظیم کند)، اما بعد از به پایان رسیدن اسکریپت، در همان جایی هستم که از آنجا شروع کرده بودم(یا متغیر من نیست)!
کاری که میتوانید انجام دهید منبع نمودن اسکریپت درعوض اجرای آن به عنوان پردازش فرزند میباشد. این کار را با استفاده از فرمان
. ./myscript # اجرا میکند myscript فرمانها را در این محیط از فایل
این کار غالباً نقطهای نمودن(dotting in) اسکریپت نامیده میشود. این
توجه کنید که Bashنام دومی برای این دستور دارد، source، اما نظر به اینکه، این عیناً مانند دستور