कैसे मछली के खोल में पर्यावरण चर सेट करने के लिए


90

क्या कोई मुझे बता सकता है कि मछली के खोल में पर्यावरण चर का एक गुच्छा सेट करने का सही तरीका क्या है?

मेरी .config / मछली / config.fish फ़ाइल में, मेरे पास अपने पर्यावरण चर जैसे सेटअप करने के लिए एक फ़ंक्शन है

function setTESTENV
      set -x BROKER_IP '10.14.16.216'
      set -x USERNAME 'foo'
      set -x USERPASS 'bar'
end 

जब मैं कमांड प्रॉम्प्ट से टाइप करता हूं setTESTENVऔर envकमांड लाइन में करता हूं, तो मुझे ये जानकारी दिखाई नहीं देती है।

जवाबों:


70

आपके द्वारा घोषित किए जा रहे चर आपके कार्य के अंदर एक स्थानीय दायरे में रहते हैं।

उपयोग:

set -g -x

यहां " g" वैश्विक के लिए है।


151

यूनिवर्सल वेरिएबल्स का उपयोग करें

चर वर्तमान कंप्यूटर पर सभी मौजूदा उपयोगकर्ता मछली उदाहरणों के बीच साझा किया और किया जाना है, तो संरक्षित पुनरारंभ भर में खोल आप का उपयोग करने के लिए है की -Uया --universal:

set -Ux FOO bar

शेल इंस्टेंस के बीच चर को लगातार सेट करना या उसके setसाथ प्रयोग नहीं करना-g--global


नोट :

config.fishफ़ाइल में सार्वभौमिक चर के लिए अपील न करें , क्योंकि ये चर तब प्रत्येक नए शेल उदाहरण के साथ लंबे समय तक मिलेंगे। इसके बजाय, बस -Uxएक बार कमांड लाइन पर सेट रन करें । और यह फ़ाइल में संग्रहीत किया जाएगा .config/fish/fishd.MACHINE_ID, जहां MACHINE_IDआमतौर पर आपका मैक पता होता है।


मेरे चरों को नहीं बचाया गया था fishd.MACHINE_ID, बल्कि इसके स्थान पर बचा लिया गया था~/.config/fish/fish_variables
Seanny123

मेरा चर ~/.config/fish/fish_variablesubuntu 20.04
इगोर मार्केलोव

11

एक अन्य विकल्प चलाना है:

export (cat env_file.txt |xargs -L 1)

जहाँ env_file.txt में प्रारूप की पंक्तियाँ हैं VAR=VALUE

इसका अन्य चर और उपकरणों द्वारा समर्थित प्रारूप में चर रखने का लाभ है


मामले में आप टिप्पणियों से बचना चाहते हैं: export (grep "^[^#]" .env |xargs -L 1)
गुइलेर्मो

10

मछली में पर्यावरण चर

मैं इसे जोड़ना चाहूंगा, जबकि @ JosEduSol का उत्तर गलत नहीं है और ओपी समस्या को हल करने में मदद करता है, -gकेवल वैश्विक होने की गुंजाइश निर्धारित कर रहा है, जबकि -xनिर्दिष्ट पर्यावरण चर को बाल प्रक्रियाओं में निर्यात किया जा रहा है।

उपरोक्त कारण विफल हो जाता है, क्योंकि @cfpete किसी फ़ंक्शन के अंदर env var को सेट कर रहा है और डिफ़ॉल्ट फ़ंक्शन उस फ़ंक्शन के लिए स्थानीय होगा।

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