منبع اصلی نوشتار زیر در این لینک قرار دارد

Sourcing


راهنمای آموزشی  BashGuide   مؤلف  Lhunath

منبع یابی

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

وقتی اسکریپتی که شما اجرا کرده‌اید(یا هر برنامه دیگری برای آن منظور) اجرایش به پایان می‌رسد محیطش دور انداخته می‌شود. محیط اسکریپت اول همان خواهد بود که قبل از فراخوانی اسکریپت دوم بود، اگرچه برخی پارامترهای ویژه bash(از قبیل مقدار متغیر ‎$?‎، مقداربرگشتی آخرین فرمان اجرا شده) شاید تغییر کرده باشند. این به معنای آنست که به عنوان مثال، شما در واقع نمی‌توانید اسکریپتی را برای تغییر دایرکتوری جاری خود، اجرا نمایید.



کاری که می‌توانید انجام دهید منبع نمودن اسکریپت درعوض اجرای آن به عنوان پردازش فرزند می‌باشد. این کار را با استفاده از فرمان . (نقطه) انجام بدهید:

. ./myscript   # اجرا می‌کند myscript فرمانها را در این محیط از فایل  

این کار غالباً نقطه‌ای نمودن(dotting in) اسکریپت نامیده می‌شود. این . به BASH می‌گوید دستورات ‎ ./myscript‎ را بخواند و آنها را در محیط پوسته جاری اجرا کند. نظر به اینکه دستورات در پوسته جاری اجرا می‌شوند، نمی‌توانند متغیرهای پوسته جاری، دایرکتوری‌های کاری، توصیف‌گرفایلهای باز، توابع و غیره را تغییر بدهند.

توجه کنید که Bashنام دومی برای این دستور دارد، source، اما نظر به اینکه، این عیناً مانند دستور . کار می‌کند، احتمالاً آسانتر است آنرا فراموش نموده و از دستور . ، که در همه جا کار خواهد کرد، استفاده کنیم.