मैं पर्यावरण चर कैसे जोड़ूं?

मैं चल रहा हूँ Ubuntu 11.04. मैं बैश सत्र शुरू करने के लिए टर्मिनल का उपयोग करता हूं, और मैं एक पर्यावरण चर जोड़ना चाहता हूं:

$r@hajt:~$ env THEVAR=/example

लेकिन यह काम नहीं कर रहा है । यह पिछले एक होने के साथ सभी चर दिखाता है, लेकिन एक और कॉल करने के लिए env नहीं दिखाता THEVAR अब और- env | grep THEVAR कुछ भी नहीं देता है ।

इसी तरह, निर्यात के साथ स्क्रिप्ट (export THEVAR=/example) या अन्य चर असाइनमेंट (THEVAR=/example) पर्यावरण चर न जोड़ें।

मुझे पता है कि मैं कुछ गलत कर रहा हूं, मुझे पता है कि यह कुछ सरल होना चाहिए, लेकिन मुझे अभी क्या नहीं मिल रहा है ।

अद्यतन: मेरे प्रश्न का वास्तविक अर्थ यह था: https://stackoverflow.com/questions/496702/can-a-shell-script-set-environment-variables-of-the-calling-shell

(वैसे भी मैं सबसे अधिक वोट दिया गया उत्तर चुनूंगा और संपादित शीर्षक छोड़ दूंगा-जो मैं नहीं पूछ रहा था)

env एक संशोधित वातावरण में एक कार्यक्रम चलाता है, फिर सभी परिवर्तनों को खारिज कर देता है ।

चर सेट करने के लिए केवल वर्तमान खोल के लिए:

VARNAME="my value"

इसे वर्तमान शेल के लिए सेट करने के लिए और सभी प्रक्रियाएं वर्तमान शेल से शुरू हुआ:

export VARNAME="my value"      # shorter, less portable version

इसे सेट करने के लिए स्थायी रूप से भविष्य के सभी बैश सत्रों के लिए ऐसी लाइन जोड़ें .bashrc अपने में फ़ाइल $HOME निर्देशिका ।

इसे स्थायी रूप से सेट करने के लिए, और सिस्टम वाइड (सभी उपयोगकर्ता, सभी प्रक्रियाएं) /आदि/पर्यावरण में सेट चर जोड़ें:

sudo -H gedit /etc/environment

यह फ़ाइल केवल चर असाइनमेंट स्वीकार करती है जैसे:

VARNAME="my value"

उपयोग न करें export कीवर्ड यहाँ.

आपको वर्तमान उपयोगकर्ता से लॉगआउट करने और फिर से लॉगिन करने की आवश्यकता है ताकि पर्यावरण चर परिवर्तन हो सकें ।

एक बार पर्यावरण चर सेट करने के लिए, का उपयोग करें export प्रॉम्प्ट में कमांड, शेल स्क्रिप्ट में नहीं:

$ export THEVAR=/example

चर को शेष शेल सत्र के लिए या अनसेट होने तक सेट किया जाएगा ।

हर बार एक पर्यावरण चर सेट करने के लिए, का उपयोग करें export में आदेश .bashrc फ़ाइल (या आपके शेल के लिए उपयुक्त आरंभीकरण फ़ाइल) ।

स्क्रिप्ट से पर्यावरण चर सेट करने के लिए, का उपयोग करें export स्क्रिप्ट में कमांड, और फिर source स्क्रिप्ट। यदि आप स्क्रिप्ट निष्पादित करते हैं तो यह काम नहीं करेगा ।

सोर्सिंग और निष्पादन के बीच अंतर की व्याख्या के लिए यह उत्तर देखें: https://superuser.com/questions/176783/what-is-the-difference-between-executing-a-bash-script-and-sourcing-a-bash-script/176788#176788

उबंटू में एक नया पर्यावरण चर स्थायी रूप से जोड़ने के लिए (केवल 14.04 में परीक्षण किया गया), निम्न चरणों का उपयोग करें:

  1. एक टर्मिनल खोलें (दबाकर CtrlAltT)
  2. sudo -H gedit /etc/environment
  3. अपना पासवर्ड टाइप करें
  4. अभी खोली गई टेक्स्ट फ़ाइल को संपादित करें:
    जैसे यदि आप जोड़ना चाहते हैं FOO=bar, तो बस लिखें FOO=bar एक नई लाइन में
  5. इसे बचाओ
  6. एक बार सहेजे जाने के बाद, लॉगआउट करें और फिर से लॉगिन करें ।
  7. आपके आवश्यक परिवर्तन किए गए हैं ।

स्क्रिप्ट पूरी होने के बाद पर्यावरण/संस्करण परिवर्तन को जारी रखने के लिए, आपको इसका उपयोग करना होगाsource ./script.sh या स्रोत के लिए आशुलिपि संकेतन," । ", जैसे . ./script.sh

स्रोत स्क्रिप्ट में कमांड निष्पादित करेगा जैसे कि आपने उन्हें टाइप किया है । .. तो यह स्क्रिप्ट के कुछ पहलुओं को बदलता है, जैसे बाहर निकलना । .. इसलिए यदि आपकी स्क्रिप्ट कुछ जांचती है और गलत होने पर बाहर निकलने का फैसला करती है, उदाहरण के लिए, कॉलिंग के माध्यम से exit 0, यह आपके वर्तमान टर्मिनल / शेल सत्र को समाप्त कर देगा ।

मुझे पता है कि यह बहुत देर हो चुकी है, लेकिन यदि आप सभी उपयोगकर्ताओं (जैसे जावा उपयोग) के लिए एक पर्यावरण चर जोड़ना चाहते हैं - तो आप निम्न कार्य कर सकते हैं:

1) खुला /etc/bash.bashrc नैनो का उपयोग करना (आप जो भी संपादक का उपयोग कर सकते हैं, मैं विम को पसंद नहीं करता क्योंकि उपयोगकर्ता मित्रता की बात आती है तो यह सबसे खराब है - व्यक्तिगत कुछ भी नहीं) ।

2) फ़ाइल में संलग्न करें:

export VAR=path export PATH=$PATH:/bin3) (बेहतर यदि आप बॉक्स को उछाल सकते हैं) - या बस एक नया एसएसएच सत्र खोलें और `एनवी' कमांड का उपयोग करके पुष्टि करें ।

लेकिन अगर आप चाहते हैं कि प्रत्येक उपयोगकर्ता के पास इसके लिए एक अलग सेटिंग हो, तो आपको एक बदलाव (स्क्रिप्टेड) करना होगा .bashrc के तहत फ़ाइल ~/.bashrc (या /home/$USER/ यदि आप लिनक्स सिस्टम के लिए नए हैं)

यदि आप स्क्रिप्ट के माध्यम से चीजें कर रहे हैं, तो पर्यावरण चर को स्थायी रूप से सेट करने का एक आसान तरीका आपकी स्क्रिप्ट में नीचे दिया गया है,

if [[ ! -d "$MyVar" ]]; then     export MyVar="abc"    echo 'export MyVar="abc"' >> ~/.bashrcfi

यदि आपको पीडब्ल्यूडी जैसे भावों का मूल्यांकन करना है, तो आप इसका उपयोग कर सकते हैं, उदाहरण के लिए,

echo "export EIGEN_ROOT=\"$(pwd)/eigen\"" >> ~/.bashrc

यदि आप उबंटू या किसी यूनिक्स-आधारित प्रणाली का उपयोग कर रहे हैं तो चर में निर्यात करें ~/.bashrc फ़ाइल। यह एक छिपी हुई फ़ाइल है और आप टर्मिनल के माध्यम से या फ़ाइल सिस्टम में छिपी हुई फ़ाइलों को खोलकर वहां पहुंच सकते हैं ।

फिर फ़ाइल को संपादित करें और सेट करें export THEVAR=/example वहां, बचाओ और यह हो गया ।

यदि आप टॉमकैट का उपयोग करके जावा एप्लिकेशन को तैनात कर रहे हैं तो आप निम्न तरीके से पर्यावरण चर सेट कर सकते हैं:

1.र और sudo के लिए cd /var/lib/tomcat8/बिन/ (या जो भी है आपके बिलाव बिन पथ)

  1. स्पर्श करें setenv.sh (यदि यह मौजूद नहीं है), यदि फ़ाइल पहले से मौजूद है 'छठी setenv.sh'

  2. चामोद 777 setenv.sh (फ़ाइल निष्पादन योग्य बनाएं)

  3. छठी setenv.sh और सेटेनव में निम्नलिखित पंक्ति सेट करें । shexport कुंजी=मूल्य

  4. sudo systemctl पुनः प्रारंभ बिलाव.सेवा

अपनी जावा फ़ाइल में आप यह जांचने के लिए निम्न कोड का उपयोग कर सकते हैं कि चर सेट है या नहीं

private static void printEnv() {    System.out.println("******************************Environment Vars*****************************");    Map<String, String> enviorntmentVars = System.getenv();    enviorntmentVars.entrySet().forEach(System.out::println);    System.out.println("******************************system Vars*****************************");    Properties enviorntmentProperties = System.getProperties();    enviorntmentVars.entrySet().forEach(System.out::println);}

दूसरा वैश्विक चर के बारे में है, यह एक ऐसी सीमा नहीं जोड़ता है । मैं इसे अलग रखूंगा।

https://help.ubuntu.com/community/EnvironmentVariables

जब परिभाषित / निर्यात किया जाता है । bashrc, यह ठीक से काम करता है.

थेवर=/उदाहरणके बारे में कैसे?

[गूगल अर्थ और $ब्राउज़र पर्यावरण चर] के संभावित डुप्लिकेट(Google Earth and $BROWSER environment variable - Ask Ubuntu)