मैंने जरूरत पड़ने पर कुछ पर्यावरण चर निर्धारित करने के लिए निम्न स्क्रिप्ट लिखी है।
#!/bin/sh
export BASE=/home/develop/trees
echo $BASE
export PATH=$PATH:$BASE
echo $PATH
कमांड और परिणाम के नीचे मैं अपने टर्मिनल पर देख सकता हूं: स्क्रिप्ट चलती है, लेकिन अंत में चर सेट नहीं होते हैं।
~$: ./script.sh
/home/develop/trees
/bin:......:/home/develop/trees
~$: echo $BASE
~$:
क्या गलत है? अग्रिम में धन्यवाद। मिरको
export
उप-श्रेणियों में चर पास करने की आवश्यकता नहीं है , एक उपधारा आपके वर्तमान शेल की एक प्रति है, जिसमें चर और फ़ंक्शन आदि शामिल हैं। निर्यात किए गए चर शेल से खोली गई नई प्रक्रियाओं की प्रतिलिपि बन जाते हैं, भले ही उस प्रक्रिया को कोई अन्य शेल हो या न हो। दूसरे,.
सोर्सिंग के लिए POSIX कमांड है। बैश इसके लिएsource
एक अधिक पठनीय पर्याय के रूप में जोड़ता है, लेकिन आप इसे श में उपलब्ध होने पर भरोसा नहीं कर सकते। अंत में. ./script
इसके बजाय. script
अगर आप आश्चर्य से बचना चाहते हैं। mywiki.wooledge.org/BashFAQ/060