2013-03-18 11 views
7

मैं एक फ़ाइल पढ़ने के लिए एक खोल स्क्रिप्ट लिख रहा हूं जिसमें कुंजी = मान जोड़ी है और उन चर को पर्यावरण चर के रूप में सेट करें। लेकिन मुझे संदेह है, अगर मैं source file.txt करता हूं तो उस फ़ाइल में परिभाषित वैरिएबल को वेरिएबल वैरिएबल के रूप में सेट किया जाएगा या मुझे फ़ाइल लाइन को लाइन से पढ़ना चाहिए और इसे निर्यात कमांड का उपयोग करके सेट करना चाहिए?यूनिक्स: स्रोत और निर्यात के बीच क्या अंतर है?

इस मामले में स्रोत कमांड निर्यात से अलग है?

+0

क्या खोल प्रयोग कर रहे हैं? – shx2

+2

आप कोशिश क्यों नहीं करते और पता लगाते हैं? – Mat

+0

मैं उत्पादन वातावरण में एक शेल स्क्रिप्ट में उपयोगकर्ता द्वारा परिभाषित फ़ाइल 'स्रोत' से बहुत सावधान रहूंगा। एक असंतुष्ट कर्मचारी की कल्पना करें कि लाइन 'आरएम-आरएफ $ {HOME} '(या बदतर) ... – Johnsyweb

उत्तर

12

जब आप source फ़ाइल करते हैं, तो असाइनमेंट चर के रूप में सेट किए जाएंगे, लेकिन पर्यावरण चर के रूप में नहीं, जब तक कि allexport विकल्प सेट नहीं किया गया हो। यदि आप पर्यावरण में चर को रखना चाहते हैं, तो फ़ाइल को पढ़ने और export का उपयोग करने के लिए फ़ाइल को allexport और source फ़ाइल का उपयोग करना बहुत आसान है। दूसरे शब्दों में, आपको क्या करना चाहिए:

set -a 
. file.txt 

(मैं . पसंद करते हैं क्योंकि यह source की तुलना में अधिक पोर्टेबल है, लेकिन सिर्फ bash में ठीक source काम करता है।)

संबंधित मुद्दे