2011-09-14 9 views

उत्तर

101

निर्यात किए गए चर (जैसे $HOME और $PATH) अन्य कार्यक्रमों के लिए उपलब्ध हैं। नियमित (गैर-निर्यातित) चर अन्य कार्यक्रमों के लिए उपलब्ध नहीं हैं।

$ env | grep '^variable=' 
$         # No environment variable called variable 
$ variable=Hello     # Create local (non-exported) variable with value 
$ env | grep '^variable=' 
$         # Still no environment variable called variable 
$ export variable     # Mark variable for export to child processes 
$ env | grep '^variable=' 
variable=Hello 
$ 
$ export other_variable=Goodbye # create and initialize exported variable 
$ env | grep '^other_variable=' 
other_variable=Goodbye 
$ 

अधिक जानकारी के लिए जीएनयू बैश के मैनुअल में export builtin के लिए प्रविष्टि देखें।

ध्यान दें कि गैर निर्यात चर (...) और इसी तरह के अंकन के माध्यम से चलाने के subshells लिए उपलब्ध हो जाएगा:

$ othervar=present 
$ (echo $othervar; echo $variable; variable=elephant; echo $variable) 
present 
Hello 
elephant 
$ echo $variable 
Hello 
$ 

subshell ज़ाहिर है, माता पिता के खोल में चर को प्रभावित नहीं कर सकते हैं।

सबहेल्स के बारे में कुछ जानकारी बैश मैनुअल में command grouping और command execution environment के तहत पाई जा सकती है।

+0

मैंने कुछ नई लाइनें और लाइनें केवल '$ 'दिखा रही हैं ताकि यह स्पष्ट रूप से दिखाया जा सके कि' grep' कमांड से कोई आउटपुट नहीं है। बेशक, रोलबैक के लिए स्वतंत्र महसूस करें अगर आपको लगता है कि यह पठनीयता – fedorqui

12

अच्छा, यह आम तौर पर खोल पर निर्भर करता है। bash के लिए, यह चर को "निर्यात करने योग्य" के रूप में चिह्नित करता है जिसका अर्थ यह है कि यह आपके द्वारा चलाए जाने वाले किसी भी बाल प्रक्रिया के लिए पर्यावरण में दिखाई देगा।

गैर-निर्यातित चर केवल वर्तमान प्रक्रिया (खोल) से दिखाई दे रहे हैं।

bash आदमी पृष्ठ से

:

export [-fn] [name[=word]] ...
export -p

आपूर्ति के नाम बाद में मार डाला आदेशों की पर्यावरण के लिए स्वत: निर्यात के लिए चिह्नित किया गया है।

यदि -f विकल्प दिया गया है, तो नाम फ़ंक्शंस को संदर्भित करते हैं। यदि कोई नाम नहीं दिया गया है, या यदि -p विकल्प प्रदान किया गया है, तो इस खोल में निर्यात किए गए सभी नामों की एक सूची मुद्रित की जाती है।

-n विकल्प निर्यात संपत्ति को प्रत्येक नाम से हटा दिया जाता है।

यदि एक चर नाम =word द्वारा पीछा किया जाता है, तो चर का मान word पर सेट किया गया है।

export अमान्य विकल्प का सामना नहीं होने तक 0 से बाहर निकलने की स्थिति लौटाता है, नामों में से एक वैध शैल चर नाम नहीं है, या -f किसी ऐसे नाम से आपूर्ति की जाती है जो फ़ंक्शन नहीं है।

तुम भी typeset कमांड के साथ निर्यात के रूप में चर सेट कर सकते हैं और स्वचालित रूप से set -a साथ, इस तरह के रूप में सभी भविष्य चर कृतियों या संशोधन निशान।

-2

निर्यातित चर प्रक्रिया प्रक्रिया पदानुक्रम के भीतर सभी प्रक्रियाओं के लिए उपलब्ध है। उदाहरण के लिए, बाल प्रक्रिया द्वारा निर्यात किया गया डेटा मूल प्रक्रिया के लिए उपलब्ध है और इसके विपरीत।

निर्यात का मुख्य उपयोग केस 2 प्रक्रियाओं के बीच डेटा साझा करना है।

+1

चाइल्ड प्रक्रिया अपने माता-पिता के लिए मूल्य नहीं बदल सकता है। –