मैं तुम्हें एक खिड़कियों पृष्ठभूमि से आ रहे हैं लगता है। तो मैं उन्हें विपरीत कर दूंगा (मैं भी लिनक्स के लिए नया हूं)। मैंने चीजों को समझने में उपयोगी होने के लिए, मेरी टिप्पणी का उपयोगकर्ता का जवाब पाया।
Windows में, एक चर स्थायी या नहीं हो सकता। शब्द परिवर्तनीय शब्द में एसईटी कमांड के साथ cmd शैल में एक चर सेट सेट होता है, साथ ही साथ जब वेरिएबल विंडोज़ GUI के भीतर सेट किया जाता है, इस प्रकार रजिस्ट्री में सेट किया जाता है, और नई cmd विंडो में देखने योग्य हो जाता है। जैसे विंडोज https://technet.microsoft.com/en-us/library/bb490998.aspx में sed कमांड के लिए प्रलेखन "पर्यावरण चर प्रदर्शित करता है, सेट करता है, या हटा देता है। पैरामीटर के बिना प्रयुक्त, सेट वर्तमान पर्यावरण सेटिंग्स प्रदर्शित करता है।" लिनक्स में, सेट पर्यावरण चर प्रदर्शित नहीं करता है, यह शैल वेरिएबल्स प्रदर्शित करता है जो इसे पर्यावरण चर के रूप में कॉल/संदर्भित नहीं करता है। साथ ही, लिनक्स वैरिएबल सेट करने के लिए सेट का उपयोग नहीं करता है (पोजिशनल पैरामीटर और शैल विकल्प के अलावा, जिसे मैं अंत में एक नोट के रूप में समझाता हूं), केवल उन्हें प्रदर्शित करने के लिए और फिर केवल शैल चर प्रदर्शित करने के लिए। विंडोज सेटिंग और प्रदर्शित करने के लिए सेट का उपयोग करता है उदा। एक = 5 सेट करें, लिनक्स नहीं करता है।
लिनक्स में, मुझे लगता है कि आप एक स्क्रिप्ट है कि bootup पर चर सेट, उदा कर सकता है /etc/profile
या /etc/.bashrc
लेकिन अन्यथा, वे स्थायी नहीं हैं। वे राम में संग्रहित हैं।
शैल चर, और पर्यावरण चर के बीच लिनक्स में एक भेद है। लिनक्स में, शैल चर केवल वर्तमान खोल में हैं, और पर्यावरण चर, उस खोल में हैं और सभी बच्चे के गोले हैं।
आप set
कमांड के साथ खोल चर देख सकते हैं (हालांकि नोट करें कि विंडोज़ के विपरीत, सेट कमांड के साथ लिनक्स में चर सेट नहीं हैं)।
set -o posix; set
(उस सेट को एक बार पहले सेट करना, बहुत अधिक अनावश्यक सामान प्रदर्शित करने में मदद करता है)। तो set
शैल चर प्रदर्शित करता है।
आप env
आदेश
खोल चर उदा साथ स्थापित कर रहे हैं के साथ वातावरण चर देख सकते हैं बस a=5
वातावरण चर निर्यात के साथ स्थापित कर रहे हैं, निर्यात भी खोल चर
यहां आप देख के साथ सेट खोल चर zzz सेट zzz = 5, और देखें कि यह पता चलता है जब set
चल रहा है, लेकिन एक वातावरण के रूप में प्रदर्शित नहीं करता है चर।
यहां हम निर्यात के साथ सेट सेट देखते हैं, इसलिए यह एक पर्यावरण चर है। और यह दोनों खोल चर और वातावरण चर के तहत
$ zzz=5
$ set | grep zzz
zzz=5
$ env | grep zzz
$ export yyy=5
$ set | grep yyy
yyy=5
$ env | grep yyy
yyy=5
$
अन्य उपयोगी सूत्र
https://unix.stackexchange.com/questions/176001/how-can-i-list-all-shell-variables
https://askubuntu.com/questions/26318/environment-variable-vs-shell-variable-whats-the-difference
एक बिंदु जो थोड़ा बताते हैं और कुछ हद तक करने के लिए सुधारात्मक है नोट- से पता चलता देखते हैं कि क्या मैं लिखा है, है कि, लिनक्स बैश में, 'सेट' का उपयोग "स्थितित्मक पैरामीटर" और "खोल विकल्प/विशेषताओं" को सेट करने के लिए किया जा सकता है, और तकनीकी रूप से वे दोनों चर हैं, हालांकि मैन पेज शायद नहीं उन्हें इस तरह का वर्णन करें। लेकिन अभी भी, जैसा कि बताया गया है, सेट शैल चर या पर्यावरण चर सेट नहीं करेगा)। यदि आप set asdf
करते हैं तो यह asdf को $ 1 सेट करता है, और यदि आप echo $1
करते हैं तो आप asdf देखते हैं। यदि आप set a=5
करते हैं तो यह वैरिएबल को 5 के बराबर सेट नहीं करेगा। यह "ए = 5" की स्ट्रिंग के बराबर स्थितित्मक पैरामीटर $ 1 सेट करेगा। तो यदि आपने कभी लिनक्स में एक = 5 सेट किया है तो शायद यह एक गलती है जब तक कोई वास्तव में उस स्ट्रिंग को = 5, $ 1 में नहीं चाहता था। लिनक्स के सेट को सेट कर सकते हैं दूसरी बात, खोल विकल्प/विशेषताएं है। यदि आप सेट करते हैं-तो आप उनकी एक सूची देखते हैं। और उदाहरण के लिए आप set -o verbose
, बंद कर सकते हैं, वर्बोज़ चालू करने के लिए (डिफ़ॉल्ट रूप से बीटीडब्लू बंद हो जाता है लेकिन इससे कोई फर्क नहीं पड़ता)। या आप वर्बोज़ बंद करने के लिए set +o verbose
कर सकते हैं। विंडोज़ के सेट कमांड के लिए ऐसा कोई उपयोग नहीं है।
यदि आपने निर्यात किए गए निर्यात आदेश के बारे में और कहा तो इससे मदद मिलेगी। अधिक संदर्भ के बिना, मुझे लगता है कि आप एक पर्यावरण चर सेट कर रहे थे। Http://en.wikipedia.org/wiki/Environment_variable#Unix –
संभावित डुप्लिकेट [bash: निर्यात के साथ या बिना किसी चर को परिभाषित करना] देखें (http://stackoverflow.com/questions/1158091/bash-defining-a- परिवर्तनीय-साथ-या-बिना निर्यात) – tripleee
[यूनिक्स निर्यात कमांड] के संभावित डुप्लिकेट (http://stackoverflow.com/questions/7328223/unix-export-command) –