मैंने यहाँ पढ़ा कि export
शेल का उद्देश्य शेल से शुरू की गई उप-प्रक्रियाओं के लिए वैरिएबल को उपलब्ध कराना है।
हालाँकि, मैंने यहाँ और यहाँ भी पढ़ा है कि "प्रक्रियाएँ अपने पर्यावरण को अपने माता-पिता से प्राप्त करती हैं (प्रक्रिया जो उन्हें शुरू हुई)।"
अगर ऐसा है, तो हमें इसकी आवश्यकता क्यों है export
? मैं क्या खो रहा हूँ?
क्या शेल चर डिफ़ॉल्ट रूप से पर्यावरण का हिस्सा नहीं हैं? अंतर क्या है?
set -k
ऐसा इसलिए है कि एक के स्थान पर उपयोगcmd ENVVAR=value
किया जा सकता हैENVVAR=value cmd
, जो कि आपके उदाहरण में काम नहीं करेगा जब तक किset -k
आह्वान करने से पहले नहीं चलाया गया थाf
। इसके अलावा, कई गोले आजकल इसका समर्थन नहीं करते हैं और केवल बॉर्न शेल के साथ पिछड़े संगतता के लिए। बॉर्न (या कोर्न) शेल में, जो कार्यों के लिए काम नहीं करेगा। और क्योंकि यह शेल पार्सिंग को प्रभावित करता है, यह उस समय प्रभाव में होता है जब शेल उस कोड को पढ़ता है जो वहां इसका उपयोग करता है।