मैं एक निर्यात किए गए पर्यावरण चर को कैसे हटाऊं?


1556

Gnuplot स्थापित करने से पहले, मैंने पर्यावरण चर सेट किया GNUPLOT_DRIVER_DIR = /home/gnuplot/build/src। स्थापना के दौरान, कुछ गलत हो गया।

मैं GNUPLOT_DRIVER_DIRपर्यावरण चर को दूर करना चाहता हूं । मैं इसे कैसे प्राप्त कर सकता हूं?


2
मछली के खोल में ऐसा करने की तलाश करने वालों के लिए देखें stackoverflow.com/questions/30703860/… (भले ही यह प्रश्न एक विशिष्ट शेल के लिए नहीं है)
एलिजा लिन

जवाबों:


2463

unset वह कमांड है जिसकी आप तलाश कर रहे हैं।

unset GNUPLOT_DRIVER_DIR

4
लेकिन यह केवल एक सत्र के लिए काम करता है, निश्चित रूप से इसे परेशान करने के बारे में क्या? या शायद चर सेट कहां है, इसलिए खोजकर आप इसे हटा सकते हैं?
eLRuLL

31
यह प्रति टर्मिनल उदाहरण पर काम करना चाहिए। आम तौर पर, हर बार एक टर्मिनल विंडो खोली जाती है, यह विभिन्न स्थानों जैसे ~ / .bashrc, ~ / .profile, आदि से चर को लोड करेगा। आपके द्वारा एक टर्मिनल उदाहरण में सेट किए गए कोई भी चर दूसरे पर नहीं ले जाएंगे। यदि आपके पास एक चर है, जो हर बार टर्मिनल खोलने पर स्वचालित रूप से सेट होने लगता है, तो इसके लिए अपनी होम निर्देशिका में विभिन्न छिपी हुई फ़ाइलों को देखने का प्रयास करें। या, यह देखने के लिए कि यह कहाँ सेट किया जा रहा है, "grep -r <X> ~" जहाँ <x> वैरिएबल का नाम है। यदि आपके घर की निर्देशिका में बहुत सारी फाइलें हैं, तो इसमें कुछ समय लग सकता है।
मटका ५84४

1
यह शेल से चर को हटा देता है, हालांकि। क्या करने का एकमात्र तरीका unexportहै T="$MYVAR"; unset MYVAR; MYVAR="$T"; unset T?
olejorgenb

1
@olejorgenb कम से कम हाशिए में, आप declare +x MYVARनिर्यात को हटाने के लिए कह सकते हैं, लेकिन वर्तमान शेल में मान रखें।
पेडर क्लिंगनबर्ग

4
@PederKlingenberg बश में भी export -n MYWARकाम करता है।
जारो

170

बैश में एक पर्यावरण चर बनाने और हटाने का पूर्वाभ्यास:

यदि DUALCASE चर मौजूद है तो परीक्षण करें:

el@apollo:~$ env | grep DUALCASE
el@apollo:~$ 

यह नहीं है, इसलिए चर बनाएं और इसे निर्यात करें:

el@apollo:~$ DUALCASE=1
el@apollo:~$ export DUALCASE

अगर वहाँ है तो जाँच करें:

el@apollo:~$ env | grep DUALCASE
DUALCASE=1

यह वहाँ है। तो इससे छुटकारा पाएं:

el@apollo:~$ unset DUALCASE

जांचें कि क्या यह अभी भी वहां है:

el@apollo:~$ env | grep DUALCASE
el@apollo:~$ 

DUALCASE निर्यात पर्यावरण चर को हटा दिया गया है।

अपने स्थानीय और पर्यावरण चर को साफ करने में मदद करने के लिए अतिरिक्त कमांड:

लॉगिन पर डिफ़ॉल्ट रूप से सभी स्थानीय चर वापस करें:

el@apollo:~$ CAN="chuck norris"
el@apollo:~$ set | grep CAN
CAN='chuck norris'
el@apollo:~$ env | grep CAN
el@apollo:~$
el@apollo:~$ exec bash
el@apollo:~$ set | grep CAN
el@apollo:~$ env | grep CAN
el@apollo:~$

exec bash कमांड ने सभी स्थानीय चरों को साफ़ किया लेकिन पर्यावरण चर को नहीं।

लॉगिन पर डिफ़ॉल्ट रूप से सभी पर्यावरण चर वापस जाएं:

el@apollo:~$ export DOGE="so wow"
el@apollo:~$ env | grep DOGE
DOGE=so wow
el@apollo:~$ env -i bash
el@apollo:~$ env | grep DOGE
el@apollo:~$

env -i bash कमांड ने सभी पर्यावरण चर को लॉगिन पर डिफ़ॉल्ट करने के लिए मंजूरी दे दी।


10
शायद इससे echo $VARIABLEबेहतर है env | grep VARIABLE, यह हल्का है क्योंकि इसे सभी चर प्रिंट करने की आवश्यकता नहीं है और फिर इसके आउटपुट को दूसरे (grep) प्रक्रिया में भेजना है। साथ ही, env | VARIABLEएक से अधिक वेरिएबल को पकड़ सकता है जो समान पैटर्न से मेल खाता है। प्लस 2, echo $VARIABLE<Tab> मारकर चर के नाम को पूरा करना संभव बनाता है (यदि यह मौजूद है, तो आप जो करना चाहते हैं, वह भी संकेत हो सकता है)।
रॉड्रिगो गुरगेल

10
'एनव | grep VARIABLE '' गूंज $ VARIABLE 'से बेहतर है क्योंकि मैं बता सकता हूं कि यह वास्तव में चला गया है
calasyr

8
@RodrigoGurgel, आपको echo $VARIABLEयह नहीं बताता है कि VARIABLE एक शेल चर (जिसे "स्थानीय चर" कहा जाता है) या एक पर्यावरण चर है, जो कि पूर्वाभ्यास का पूरा बिंदु है।
हमीजेल ने 8

4
ध्यान दें कि env -i bashएक उपखंड (कम से कम मैक पर) बना हुआ प्रतीत होता है जिसके अनपेक्षित परिणाम हो सकते हैं।
मार्क चेकरियन

2
@RodrigoGurgel इको का उपयोग कर मौजूदा स्ट्रिंग को खाली स्ट्रिंग या न्यूल पर नहीं दिखाया जाएगा। हालाँकि, आपकी बात, चर का परीक्षण करने का एक उचित तरीका होगा env | grep -e '^VARNAME='
थॉमस

5

क्योंकि मूल प्रश्न में यह उल्लेख नहीं किया गया है कि चर कैसे सेट किया गया था, और क्योंकि मुझे इस पृष्ठ पर इस विशिष्ट उत्तर की तलाश थी, मैं निम्नलिखित जोड़ रहा हूँ:

C शेल (csh / tsh) में पर्यावरण चर को सेट करने के दो तरीके हैं:

  1. set x = "something"
  2. setenv x "something"

व्यवहार में अंतर यह है कि सेटेनव कमांड के साथ सेट किए गए चर स्वचालित रूप से सदस्यता के लिए निर्यात किए जाते हैं जबकि सेट के साथ चर सेट नहीं होते हैं।

के साथ एक चर सेट अनसेट करने के लिए सेट , उपयोग

unset x

Setenv के साथ एक चर सेट को परेशान करने के लिए , का उपयोग करें

unsetenv x

नोट: उपरोक्त सभी में, मैं मानता हूं कि चर नाम 'x' है।

क्रेडिट:

https://www.cyberciti.biz/faq/unix-linux-difference-between-set-and-setenv-c-shell-variable/ https://www.oreilly.com/library/view/solaristm -7 संदर्भ / 0130200484 / 0130200484_ch18lev1sec24.html


Set / setenv wrt सबहेल के बीच अंतर के बारे में महान जोड़!
एवल

4

यह भी काम कर सकता है।

export GNUPLOT_DRIVER_DIR=

10
चर अभी भी मौजूद है, लेकिन इसमें एक खाली स्ट्रिंग शामिल है, जैसा कि आप envकमांड के आउटपुट में देख सकते हैं । यह सिर्फ मामला हो सकता है कि चर का उपयोग करने वाला एप्लिकेशन गैर-मौजूद और खाली पर्यावरण चर के बीच अंतर नहीं करता है।
पालिक

1
हाँ, इसमें शामिल होगा, यह केवल वैरिएबल को हटाने के लिए मान को हटाने के लिए था। लेकिन हाँ एक का उपयोग कर सकते हैं - परेशान GNUPLOT_DRIVER_DIR।
नीलेश के।

यह पेजर चर के मामले में काम नहीं करता है। मैंने अपनी PAGER सेटिंग को अनसेट करने का प्रयास किया export PAGER=, लेकिन वह पूरी तरह से पेजिंग को अक्षम कर दिया - मेरे सभी आदमी पृष्ठों को सीधे टर्मिनल पर डंप कर दिया। unset PAGERचाल, डिफ़ॉल्ट व्यवहार के लिए इसे वापस कर दिया।
चाड

1

जैसा कि ऊपर दिए गए उत्तरों में बताया गया है, unset GNUPLOT_DRIVER_DIRयदि आपको exportचर सेट करने के लिए उपयोग करना है तो काम करना चाहिए । यदि आपने इसे स्थायी रूप से सेट किया है ~/.bashrcया ~/.zshrcफिर इसे वहां से हटाकर काम करेंगे।

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