2013-02-22 71 views
7

कैसे वातावरण चर डॉट अलग निर्यात करने के लिए

[email protected]:~$ export property.name=property.value 

का निष्पादन मुझे देता है

-bash: export: `property.name=property.value': not a valid identifier 

क्या यह संभव है डॉट के अंदर के साथ सिस्टम गुण हैं? यदि ऐसा है तो वह कैसे?

उत्तर

14

के रूप में अन्य लोगों ने कहा, पार्टी यह अनुमति नहीं देता है ताकि आप अपने पसंदीदा पटकथा भाषा का उपयोग करने के लिए यह करना होगा। उदाहरण के लिए, पर्ल में:

perl -e '$ENV{"property.name"} = "property.value"; system "bash"' 

यह property.name वातावरण चर सेट के साथ एक subshell बैश अप को सक्रिय कर देगा, लेकिन आप अभी भी पार्टी से है कि वातावरण चर का उपयोग नहीं कर सकते हैं (हालांकि अपने कार्यक्रम यह देखने के लिए सक्षम हो जाएगा) ।

संपादित: @MarkEdgar टिप्पणी की है कि env आदेश भी काम करेगा:

env 'property.name=property.value' bash # start a subshell, or 
env 'property.name=property.value' command arg1 arg2 ... # Run your command 

हमेशा की तरह, आप केवल यदि आप खोल से विशेष वर्ण की रक्षा या में रिक्तियां शामिल करना चाहते हैं की जरूरत है उद्धरण की आवश्यकता होती है संपत्ति का नाम या मूल्य।

+1

काम नहीं करता है? –

+0

@ मार्क एडगर: हां, 'एनवी' काम करता है। मुझे अभी पता नहीं था कि इसे * सेट * पर्यावरण चर के लिए इस्तेमाल किया जा सकता है, मैंने कभी इसे * प्रदर्शन * पर्यावरण चर के लिए उपयोग किया है। –

1

बैश केवल '_' और अल्फा न्यूमेरिक वर्णों को परिवर्तनीय नामों में अनुमति देता है। '।' अनुमति नहीं है

http://tldp.org/LDP/abs/html/gotchas.html

3

मैंने इस दोपहर का बेहतर हिस्सा बिताया कि जेनकिंस द्वारा निर्धारित कुछ संपत्तियों को कैसे एक्सेस किया जाए (नौकरी के पैरामीटर जेनकिंस को डॉट के साथ संपत्ति प्रारूप का उपयोग करने के लिए) - यह एड्रियन से एक अच्छा संकेत था और हां यह काम करता है लिपि में भी गुण पढ़ना। मुझे नुकसान हुआ था कि मुझे क्या करना है, लेकिन फिर मैंने कोशिश की:

var=`perl -e 'print $ENV{"property.name"};print "\n";'` 

यह वास्तव में काफी अच्छा काम करता है। लेकिन निश्चित रूप से जो एक शेल में काम करता है जो पहले से ही पर्यावरण में स्थापित संपत्ति के साथ शुरू किया गया था, यानी एड्रियन के उदाहरण में यह एक उदाहरण में शुरू किया गया था जिसमें उसने प्रदान किए गए उदाहरण के उदाहरण में शुरू किया गया था। ऐसा नहीं होगा कि अगर इस पर्ल स्निपलेट को केवल उसी छेद में रखा जाए तो उसके सीधे उदाहरण के बाद।

कम से कम मैंने आज दोपहर कुछ सीखा, इसलिए यह सब समय बर्बाद नहीं है।

2

यदि आप एप्लिकेशन को चलाने के लिए उन गुणों को निर्यात करते हैं, तो कुछ प्रोग्राम सेटिंग सिस्टम प्रॉपर्टी को विकल्प के रूप में समर्थन दे सकते हैं, और संपत्ति नाम में . की अनुमति दे सकते हैं।

जावा दुनिया में, अधिकांश टूल -D विकल्प द्वारा सेटिंग सिस्टम प्रॉपर्टी का समर्थन करते हैं, उदा। आप सिस्टम प्रॉपर्टी को इस -Dproperty.name=property.value जैसे डॉट के साथ सेट कर सकते हैं।

+0

मुझे जावा सर्वर के लिए एनवी वैरिएबल सेट करना पड़ा, इसलिए मेरे लिए निर्यात JAVA_OPTS = "$ JAVA_OPTS -Dspring.profiles.active = somevalue" – divideByZero