कैसे एक bash कमांड के लिए कई env वैरिएबल सेट करें


109

मुझे कमांड चलाने से पहले EC2_HOME और JAVA_HOME वैरिएबल सेट करने हैं (ec2-description-area)

मैं एक बार में कैसे करूँ?

जवाबों:


165

आप कमांड से पहले कमांड लाइन पर लगाकर एकल कमांड के लिए एक बार सेट कर सकते हैं:

$ EC2_HOME=/path/to/dir JAVA_HOME=/other/path ec2-describe-regions

वैकल्पिक रूप से, आप उन्हें पर्यावरण में निर्यात कर सकते हैं, जिस स्थिति में उन्हें भविष्य के सभी कमांड के लिए सेट किया जाएगा:

$ export EC2_HOME=/path/to/dir
$ export JAVA_HOME=/other/path
$ ec2-describe-regions

7
ध्यान दें, हालांकि यह असामान्य लगता है, आप भी लिख सकते हैं export EC2_HOME=/path JAVA_HOME=/path
विलियम पर्ससेल

4
एकमुश्त विकल्प लिपियों में काफी उपयोगी है। बस रूट या किसी अन्य उपयोगकर्ता के रूप में कमांड को निष्पादित करने की आवश्यकता वाले किसी भी व्यक्ति के लिए एक नोट, चर सूडो या उपयोगकर्ता के बाद आना चाहिए । उदाहरण के लिएsudo -u somebody CVSROOT=:ext:somebody@12.18.127.22:/usr/local/ncvs CVS_RSH=ssh cvs co my/dir/ancient-file.py
नागदेव

क्या आपके द्वारा प्रीपेडिंग के माध्यम से आपूर्ति किए जा सकने वाले चर की संख्या की सीमा है?
सैम थॉमस

बस अधिकतम कमांड लाइन की लंबाई सीमा, जो लिनक्स पर काफी बड़ी है।
क्रिस डोड

2

अन्य * निक्स प्रणाली के रूप में, आप अपने .bashrc फ़ाइल में अपने गृह निर्देशिका के तहत फ़ंक्शन जोड़ सकते हैं।

function startec2(){
    EC2_HOME=/path/to/dir
    JAVA_HOME=/other/path 
    ec2-describe-regions
}

अब, आप निम्नलिखित कमांड द्वारा अपना कार्यक्रम शुरू कर सकते हैं:

startec2

4
जहाँ तक मुझे पता है, यह केवल बैश चर बनाता है और काम नहीं करेगा।
TNW
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.