निर्यात किए गए चर को शेल द्वारा निष्पादित आदेशों के वातावरण में ले जाया जाता है जो उन्हें निर्यात करते हैं, जबकि गैर-निर्यात किए गए चर वर्तमान शेल आह्वान के लिए स्थानीय हैं। से exportआदमी पेज:
शेल निर्दिष्ट नामों के अनुरूप चर को निर्यात विशेषता देगा, जिससे उन्हें बाद में निष्पादित आदेशों के वातावरण में हो जाएगा।
setवर्तमान वातावरण को आउटपुट करता है, जिसमें कोई भी स्थानीय गैर-निर्यात चर शामिल है। envएक नए वातावरण में प्रोग्राम लॉन्च करने के लिए उपयोग किया जाता है, और बिना किसी तर्क के आउटपुट देगा कि नया वातावरण क्या होगा। चूंकि envएक नया वातावरण बना रहा है, केवल निर्यात किए गए चर के माध्यम से लाया जाता है, जैसा कि उस शेल से लॉन्च किए गए किसी भी कार्यक्रम के लिए होता है। उदाहरण के लिए, पहले के भीतर एक दूसरे शेल को खोलना (मैं $$आंतरिक शेल में संकेतों का प्रतिनिधित्व करता था):
$ FOO=BAR
$ bash
$$ echo $FOO # Note the empty line
$$ exit
$ export FOO
$ bash
$$ echo $FOO
BAR
$$
ध्यान दें कि यह वह चर है जो निर्यात किया गया है, न कि केवल इसका मूल्य। इसका मतलब है कि आप एक बार export FOO, FOOएक वैश्विक चर और शो के बाद के वातावरण में हो जाता है, भले ही बाद में बदला:
$ export FOO
$ FOO=BAR
$ bash
$$ echo $FOO
BAR
$$