2011-06-09 7 views
14

मुझे आश्चर्य है कि .bashrc में एक चर सेट करते समय "निर्यात" का उपयोग करने की आवश्यकता है या नहीं।बाश: .bashrc में एक चर सेट करते समय "निर्यात" की आवश्यकता है?

मेरी परीक्षणों में संपादन

foo=bar 

और

export foo=bar 

के बीच कोई अंतर दोनों ही मामलों में, लॉगिन "गूंज $ foo" आउटपुट "बार" के बाद वहाँ था .bashrc।

यदि मैं मायने रखता हूं, तो मैं डेबियन निचोड़ का उपयोग कर रहा हूं।

अग्रिम में धन्यवाद दोस्तों।

उत्तर

11

foo चर का उपयोग करने वाली शेल स्क्रिप्ट बनाने का प्रयास करें।

यदि fooexport 'ed था, तो यह शेल स्क्रिप्ट में दिखाई देगा, अन्यथा यह नहीं होगा।

+0

मैंने एक टेस्ट स्क्रिप्ट बनाई है जिसमें "echo $ foo'" है। लॉगिन के बाद दोनों मामलों में स्क्रिप्ट चलाना आउटपुट "बार" था। मैं पागल हो रहा हूँ? क्या कोई इसे पुन: उत्पन्न कर सकता है? – casper

+0

आप स्क्रिप्ट कैसे चलाते हैं? '।/स्क्रिप्ट' या'। script'? –

+0

मैं स्क्रिप्ट को ''।/Script'' – casper

10

सुपरयूसर has this covered

संक्षिप्त उत्तर: export यह सुनिश्चित करता है कि पर्यावरण परिवर्तक बाल प्रक्रियाओं में सेट हो। यदि आप निर्यात नहीं करते हैं, तो यह केवल उसी प्रक्रिया/इंटरैक्टिव सत्र में उपलब्ध है।

+1

मैंने एक परीक्षण स्क्रिप्ट बनाई है जिसमें "echo $ foo'" है। लॉगिन के बाद दोनों मामलों में स्क्रिप्ट चलाना आउटपुट "बार" था। मैं पागल हो रहा हूँ? क्या कोई इसे पुन: उत्पन्न कर सकता है? – casper

5

यह बेहतर है क्योंकि निर्यात किए गए चर बाल प्रक्रियाओं (उस खोल से लॉन्च किए गए कार्यक्रम) में पारित हो जाते हैं। निर्यात कमांड के बिना वे चर केवल शेल पर ही लागू होते हैं और शेल