जब आप एक शेल स्क्रिप्ट चलाते हैं , तो यह सब-शेल में किया जाता है, इसलिए यह पेरेंट शेल के वातावरण को प्रभावित नहीं कर सकता है। आप ऐसा करके स्क्रिप्ट को स्रोत बनाना चाहते हैं:
. ./setfoo.sh
यह इसे वर्तमान शेल के संदर्भ में निष्पादित करता है , उप शेल के रूप में नहीं ।
बैश मैन पेज से:
। फ़ाइल नाम [तर्क]
स्रोत फ़ाइल नाम [तर्क]
वर्तमान शेल वातावरण में फ़ाइल नाम से आदेशों को पढ़ें और निष्पादित करें और फ़ाइलनाम से निष्पादित अंतिम कमांड की निकास स्थिति को वापस करें।
यदि फ़ाइल नाम में स्लैश नहीं है, तो फ़ाइल नाम का उपयोग निर्देशिका में फ़ाइल नाम रखने के लिए किया जाता है।
PATH में खोज की गई फ़ाइल निष्पादन योग्य नहीं है। जब पॉश POSIX मोड में नहीं होता है, तो PATH में कोई फ़ाइल नहीं मिलने पर वर्तमान निर्देशिका को खोजा जाता है।
अगर दुकानदार कमांड को सोर्सपाट विकल्प बंद कर दिया जाता है, तो PATH की खोज नहीं की जाती है।
यदि किसी भी तर्क की आपूर्ति की जाती है, तो फ़ाइल नाम निष्पादित होने पर वे स्थितिगत पैरामीटर बन जाते हैं।
अन्यथा स्थितिगत पैरामीटर अपरिवर्तित हैं। वापसी की स्थिति स्क्रिप्ट के भीतर बाहर निकलने वाले अंतिम कमांड की स्थिति है (0 यदि कोई कमांड निष्पादित नहीं होती है), और फ़ाइल नाम नहीं मिला है या नहीं पढ़ा जा सकता है।