मैं कमांड लाइन पर एक चर को कैसे परेशान करूं?


80

मैंने प्रॉक्सी को सेट करने के लिए निम्न कमांड की कोशिश की है yaourt:

export ALL_PROXY=http://proxy.example.com:8080

सवाल यह है कि प्रॉक्सी को कैसे अनसेट किया जाए yaourt? सामान्य तौर पर, मैं वर्तमान शेल में एक चर के मूल्य को कैसे परेशान कर सकता हूं?


7
कोशिश करेंunset ALL_PROXY
coffeMug

@coffeMug रूप में अच्छी तरह कर सकता है कि एक जवाब में, आप भी यहां से कुछ जानकारी चोरी विचार कर सकते हैं: stackoverflow.com/a/12263914/1081936
terdon

स्वीकृत उत्तर के अलावा, यदि कोई कमांड है जिसे आप अक्सर चलाते हैं जो एक पर्यावरण चर का उपयोग करता है, जिसे आप अपने शेल सत्र के बाकी हिस्सों के लिए सेट या परिवर्तित नहीं करेंगे, तो आप इसे चला सकते हैं: $ ALL_PROXY=http://proxy.example.com:8080 yaourtजो केवल एनवियर को सेट करेगा कमान चलाना। FOO=bar BAZ=batकमांड चलाने से पहले आप जितने चाहें उतने वेरिएबल डाल सकते हैं।
onlynone

जवाबों:


112

पर्यावरण चर निकालने के लिए, चलाएं

unset ALL_PROXY

ध्यान दें कि एक पर्यावरण चर केवल एक कार्यक्रम और इसके लॉन्च होने वाले कार्यक्रम में प्रभावी होता है। यदि आप एक शेल विंडो में एक पर्यावरण चर सेट करते हैं, तो यह अन्य शेल विंडो को प्रभावित नहीं करता है।

यदि आपने export ALL_PROXY=…एक इनिशियलाइज़ेशन फ़ाइल में जोड़ा है, तो उसे वहाँ से हटा दें।

exportवर्तमान शेल में पर्यावरण चर क्या सेट हैं, यह देखने के लिए आप बिना किसी तर्क के चल सकते हैं।

याद रखें कि उस शेल द्वारा शुरू किए गए कार्यक्रमों के लिए एक शेल चर उपलब्ध कराने के लिए, आपको इसे निर्यात करने की आवश्यकता है, या तो export VARअसाइनमेंट के बाद चलकर VAR=VALUEया दोनों को मिलाकर ( export VAR=VALUE)।


19

बश उपयोग unset VARIABLE( unset ALL_PROXYआपके मामले में) में एक बाध्य चर को अनसेट करने के लिए । यह कमांड वास्तव में वेरिएबल को डिलीट करता है। आप किसी वैरिएबल के मान को खाली करने के लिए भी सेट कर सकते हैं

VARIABLE=

या

VARIABLE=""

अंतर यह है कि दो बाद वाली कमांड्स वेरिएबल को डिलीट नहीं करती हैं। आप -uध्वज को उपयोग करके अंतर को देख सकते हैं कि setइसे प्रतिस्थापित करते समय अशक्त चर का इलाज करने के लिए बाध्य किया जा सकता है:

/home/user1> var=""
/home/user1> echo $var

/home/user1> set -u
/home/user1> echo $var

/home/user1> unset var
/home/user1> echo $var
-bash: var: unbound variable

उपरोक्त उदाहरण में, बैश के बारे varमें शिकायत अनबाउंड है (इसके मान को अनसेट करने के बाद) जो अपेक्षित त्रुटि है (ध्यान दें कि यह दूसरी इको कमांड में नहीं होता है, जिसका अर्थ है कि varएक मान है जो emptyया है null)।


क्या होगा यदि मेरे पास मेरी शेल स्क्रिप्ट फ़ाइल में एक चर है और मैं उस फ़ाइल को स्रोत करता हूं, तो मैं इसे कैसे परेशान करने जा रहा हूं?
अभिनव

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