2013-03-15 7 views
11

के साथ पर्यावरण चर सेट करना मैं कठपुतली के साथ कुछ पर्यावरण चर सेट करने का सबसे अच्छा तरीका काम करने की कोशिश कर रहा हूं।कठपुतली

मैं निष्पादन का उपयोग कर सकता हूं और बस export VAR=blah कर सकता हूं। हालांकि, यह केवल वर्तमान सत्र के लिए ही रहेगा। मैंने बस इसे बैशर जैसे फ़ाइल के अंत में जोड़ने के बारे में भी सोचा। हालांकि तब मुझे नहीं लगता कि यह जांचने के लिए एक विश्वसनीय तरीका है कि यह सब तैयार है या नहीं; तो यह कठपुतली के हर रन के साथ जोड़ा जा रहा है।

+1

'एक आरसी फाइल संपादित करें' कहने का एक और तरीका 'एक चर सेट करना' नहीं है? तो आप वास्तव में एक फाइल में सामग्री तैनात करना चाहते हैं? –

+0

चर के = कुंजी/VALUE सूची के साथ/etc/पर्यावरण फ़ाइल बनाकर सिस्टम विस्तृत वातावरण चर को परिभाषित करना भी संभव है। – izi

उत्तर

20

मैं this related question पर एक नज़र ले जाएगा

ENV[VAR] 

करके ENV हैश में है। /etc/profile.d में

*.sh स्क्रिप्ट उपयोगकर्ता के लिए लॉग इन समय में पढ़ रहे हैं (के रूप में पद का कहना है, एक ही समय /etc/profile प्राप्त किया जाता है पर)

चर export किसी भी स्क्रिप्ट में एड /etc/profile.d में रखा इसलिए अपने उपयोगकर्ताओं के लिए उपलब्ध हो जाएगा ।

फिर आप यह सुनिश्चित करने के लिए पर file संसाधन का उपयोग कर सकते हैं। उदाहरण के लिए:

file { "/etc/profile.d/my_test.sh": 
    content => 'export MYVAR="123"' 
} 
0

आप आप अपने bashrc में जोड़ने, तो जांच कर सकते हैं कि यह कौन सा => वापस आ जाएगी "blah"

+0

धन्यवाद, और मैं कठपुतली को केवल तभी चलाने के लिए कहूंगा यदि यह एनएनवी हैश के भीतर नहीं है? – Jake232

+0

यह पर्यावरण परिवर्तनीय VAR – Spooner

+0

तक पहुंचने के लिए ENV ['VAR'] होना चाहिए, जब तक ENV [VAR]; ' 'यह" आपका कोड है ";' ' अंत; ' –

1

या एक वैकल्पिक एक indempotent परिणाम का मतलब:

उदाहरण

if [[ ! grep PINTO_HOME /root/.bashrc | wc -l > 0 ]] ; then 
     echo "export PINTO_HOME=/opt/local/pinto" >> /root/.bashrc ; 
fi 

यह विकल्प परमिट इस पर्यावरण चर सेट करने के लिए जब पिंटो आवेदन की उपस्थिति यह उपयोगकर्ता के .bash_profile लिखने के बजाय बॉक्स पर कौन से अनुप्रयोगों को उतार सकता है, इसके बजाए इसे वारंट करता है।

0

यदि आप Github's Boxen पर एक नज़र डालें तो वे ~/.profile से एक स्क्रिप्ट (/opt/boxen/env.sh) स्रोत देखें। अपने-अपने मॉड्यूल के लिए

for f in $BOXEN_HOME/env.d/*.sh ; do 
    if [ -f $f ] ; then 
    source $f 
    fi 
done 

इन लिपियों, बारी में, सेट वातावरण चर: यह स्क्रिप्ट सहित सामान का एक समूह चलाता है।

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