Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> बाश प्रोग्रामिंग

पावरशेल में चर

कंप्यूटर विज्ञान (और आकस्मिक कंप्यूटिंग) में, एक चर स्मृति में एक स्थान है जो बाद में उपयोग के लिए मनमानी जानकारी रखता है। दूसरे शब्दों में, यह आपके लिए डेटा डालने और डेटा निकालने के लिए एक अस्थायी भंडारण कंटेनर है। बैश शेल में, वह डेटा एक शब्द हो सकता है (एक स्ट्रिंग , कंप्यूटर भाषा में) या एक संख्या (एक पूर्णांक .) )।

आपने अपने कंप्यूटर पर पहले कभी (जानबूझकर) एक चर का उपयोग नहीं किया होगा, लेकिन आपने शायद अपने जीवन के किसी अन्य क्षेत्र में एक चर का उपयोग किया है। जब आप "मुझे वह दें" या "इसे देखें" जैसी बातें कहते हैं, तो आप व्याकरणिक चर का उपयोग कर रहे हैं (आप उन्हें सर्वनाम के रूप में सोचते हैं ) "यह" और "वह" का अर्थ इस बात पर निर्भर करता है कि आप अपने दिमाग में जो कुछ भी चित्रित कर रहे हैं, या जिसे आप अपने दर्शकों के लिए एक संकेतक के रूप में इंगित कर रहे हैं, यह जानने के लिए कि आप क्या कह रहे हैं। जब आप गणित करते हैं, तो आप अज्ञात मानों के लिए वेरिएबल का उपयोग करते हैं, भले ही आप शायद उन्हें वेरिएबल न कहें।

यह आलेख PowerShell में चरों को संबोधित करता है, जो Windows, Linux, या Mac पर चलता है। ओपन सोर्स बैश शेल के उपयोगकर्ताओं को इसके बजाय बैश शेल में चर के बारे में मेरे लेख का संदर्भ लेना चाहिए (हालाँकि आप लिनक्स पर पॉवरशेल चला सकते हैं, और यह खुला स्रोत है, इसलिए आप अभी भी इस लेख के साथ अनुसरण कर सकते हैं)।

नोट: इस आलेख में उदाहरण ओपन सोर्स ऑपरेटिंग सिस्टम लिनक्स पर चल रहे पावरशेल सत्र से हैं, इसलिए यदि आप विंडोज या मैक पर हैं तो फ़ाइल पथ भिन्न होंगे। हालांकि, विंडोज़ / को रूपांतरित करता है करने के लिए \ स्वचालित रूप से, और सभी उदाहरण सभी प्लेटफार्मों पर काम करते हैं, बशर्ते कि आप स्पष्ट अंतरों को प्रतिस्थापित करते हैं (उदाहरण के लिए, यह सांख्यिकीय रूप से असंभव है कि आपका उपयोगकर्ता नाम सेठ है। )।

चर किस लिए हैं?

आपको पावरशेल में चर की आवश्यकता है या नहीं यह इस बात पर निर्भर करता है कि आप टर्मिनल में क्या करते हैं। कुछ उपयोगकर्ताओं के लिए, चर डेटा के प्रबंधन का एक अनिवार्य साधन हैं, जबकि अन्य के लिए वे मामूली और अस्थायी सुविधाएं हैं, या कुछ के लिए, वे मौजूद नहीं भी हो सकते हैं।

अंततः, चर एक उपकरण हैं। जब आप उनके लिए उपयोग पाते हैं तो आप उनका उपयोग कर सकते हैं, या यह जानकर आराम से उन्हें अकेला छोड़ सकते हैं कि वे आपके ओएस द्वारा प्रबंधित हैं। ज्ञान शक्ति है, हालांकि, और यह समझना कि बैश में चर कैसे काम करते हैं, आपको सभी प्रकार की अप्रत्याशित रचनात्मक समस्या-समाधान की ओर ले जा सकते हैं।

चर सेट करें

चर बनाने के लिए आपको विशेष अनुमतियों की आवश्यकता नहीं है। वे बनाने के लिए स्वतंत्र हैं, उपयोग करने के लिए स्वतंत्र हैं, और आमतौर पर हानिरहित हैं। पावरशेल में, आप एक वैरिएबल नाम को परिभाषित करके और फिर उसके मान को सेट-वेरिएबल के साथ सेट करके एक वैरिएबल बनाते हैं। आज्ञा। नीचे दिया गया उदाहरण FOO . नामक एक नया चर बनाता है और इसका मान स्ट्रिंग $HOME/Documents . पर सेट करता है :

PS> Set-Variable -Name FOO -Value "$HOME/Documents"

सफलता एकदम खामोश है, इसलिए हो सकता है कि आपको विश्वास न हो कि आपका चर सेट हो गया है। आप गेट-वेरिएबल . के साथ अपने लिए परिणाम देख सकते हैं (जीवी संक्षेप में) आदेश। यह सुनिश्चित करने के लिए कि वेरिएबल को ठीक उसी तरह पढ़ा जाता है जैसा आपने उसे परिभाषित किया था, आप इसे उद्धरणों में भी लपेट सकते हैं। ऐसा करने से वेरिएबल में प्रकट हो सकने वाले किन्हीं विशेष वर्णों को सुरक्षित रखा जाता है; इस उदाहरण में, यह लागू नहीं होता है, लेकिन यह अभी भी एक अच्छी आदत है:

PS> Get-Variable "FOO" -valueOnly
/home/seth/Documents

ध्यान दें कि FOO . की सामग्री ठीक वैसा नहीं है जैसा आपने सेट किया है। वैरिएबल के लिए आपने जो शाब्दिक स्ट्रिंग सेट की थी वह थी $HOME/Documents , लेकिन अब यह /home/seth/Documents . के रूप में दिखाई दे रहा है . ऐसा इसलिए हुआ क्योंकि आप वैरिएबल को नेस्ट कर सकते हैं। $घर चर वर्तमान उपयोगकर्ता की होम निर्देशिका को इंगित करता है, चाहे वह C:\Users . में हो विंडोज़ पर, /होम Linux पर, या /उपयोगकर्ता मैक पर। चूंकि $HOME FOO . में एम्बेड किया गया था , वह चर विस्तारित . हो जाता है जब याद किया। इस तरह से डिफ़ॉल्ट चर का उपयोग करने से आपको पोर्टेबल स्क्रिप्ट लिखने में मदद मिलती है जो सभी प्लेटफार्मों पर संचालित होती हैं।

चर आमतौर पर एक प्रणाली से दूसरी प्रणाली तक जानकारी पहुंचाने के लिए होते हैं। इस सरल उदाहरण में, आपका चर बहुत उपयोगी नहीं है, लेकिन यह अभी भी जानकारी का संचार कर सकता है। उदाहरण के लिए, क्योंकि FOO . की सामग्री वेरिएबल एक फ़ाइल पथ है, आप FOO . का उपयोग कर सकते हैं निर्देशिका के शॉर्टकट के रूप में इसके मूल्य संदर्भ।

चर FOO . को संदर्भित करने के लिए की सामग्री और स्वयं चर नहीं, चर को डॉलर चिह्न ($ . के साथ जोड़ दें ):

PS> pwd
/home/seth
PS> cd "$FOO"
PS> pwd
/home/seth/Documents

एक चर साफ़ करें

आप निकालें-चर . के साथ एक चर निकाल सकते हैं आदेश:

PS> Remove-Variable -Name "FOO"
PS> gv "FOO"
gv : Cannot find a variable with the name 'FOO'.
[...]

व्यवहार में, एक चर को हटाना आमतौर पर आवश्यक नहीं होता है। चर अपेक्षाकृत "सस्ते" हैं, इसलिए आप उन्हें बना सकते हैं और जब आपको उनकी आवश्यकता नहीं होती है तो उन्हें भूल जाते हैं। हालांकि, कभी-कभी आप यह सुनिश्चित करना चाहते हैं कि एक चर खाली है, ताकि किसी अन्य प्रक्रिया को अवांछित जानकारी संप्रेषित करने से बचा जा सके जो उस चर को पढ़ सकती है।

टकराव सुरक्षा के साथ एक नया वेरिएबल बनाएं

कभी-कभी, आपके पास यह मानने का कारण हो सकता है कि एक चर पहले से ही आपके या किसी अन्य प्रक्रिया द्वारा निर्धारित किया गया था। यदि आप इसे ओवरराइड नहीं करना चाहते हैं, तो आप नए-चर . का उपयोग कर सकते हैं , जिसे विफल करने के लिए डिज़ाइन किया गया है यदि समान नाम वाला एक चर पहले से मौजूद है, या आप पहले एक चर की जांच के लिए एक सशर्त विवरण का उपयोग कर सकते हैं:

PS> New-Variable -Name FOO -Value "example"
New-Variable : A variable with name 'FOO' already exists.

नोट: इन उदाहरणों में, मान लें कि FOO /home/seth/Documents . पर सेट है ।

वैकल्पिक रूप से, आप एक साधारण if . का निर्माण कर सकते हैं मौजूदा चर की जांच के लिए बयान:

PS> if ( $FOO ) 
>> { gv FOO } else
>> { Set-Variable -Name "FOO" -Value "quux" }

चर में जोड़ें

किसी वैरिएबल को ओवरराइट करने के बजाय, आप किसी मौजूदा वैरिएबल में जोड़ सकते हैं। पावरशेल में, चर के विविध प्रकार होते हैं, जिनमें स्ट्रिंग, पूर्णांक और सरणी शामिल हैं। अनिवार्य रूप से, एक से अधिक मान के साथ एक चर बनाना चुनते समय, आपको यह तय करना होगा कि आपको वर्ण-सीमांकित स्ट्रिंग या सरणी की आवश्यकता है या नहीं। आप एक या दूसरे तरीके से परवाह नहीं कर सकते हैं, लेकिन वेरिएबल का डेटा प्राप्त करने वाला एप्लिकेशन एक या दूसरे की अपेक्षा कर सकता है, इसलिए अपने लक्ष्य के आधार पर अपनी पसंद बनाएं।

डेटा को स्ट्रिंग वेरिएबल में जोड़ने के लिए, += . का उपयोग करें वाक्य रचना:

PS> gv FOO
foo
PS> $FOO += ",bar"
PS> gv FOO
foo,bar
PS> $FOO.getType().Name
String

Arrays PowerShell में विशेष प्रकार के चर हैं और इसके लिए ArrayList ऑब्जेक्ट की आवश्यकता होती है। यह इस लेख के दायरे से बाहर है, क्योंकि इसके लिए पावरशेल के .NET इंटर्नल में गहराई से जाने की आवश्यकता है।

पर्यावरण चर के साथ वैश्विक बनें

अब तक इस लेख में बनाए गए चर स्थानीय रहे हैं , जिसका अर्थ है कि वे केवल आपके द्वारा बनाए गए पावरशेल सत्र पर लागू होते हैं। अन्य प्रक्रियाओं के लिए सुलभ चर बनाने के लिए, आप पर्यावरण चर बना सकते हैं, जिसे भविष्य के लेख में शामिल किया जाएगा।


  1. विंडोज़ में कस्टम पर्यावरण चर बनाएं

    डिफ़ॉल्ट रूप से, विंडोज कुछ पर्यावरण चर का उपयोग करता है ताकि उपयोगकर्ता ऑपरेटिंग सिस्टम के भीतर कुछ पथों और निर्देशिकाओं को जल्दी से एक्सेस कर सकें। यह विंडोज़ को नेविगेट करने में आसान बनाने में मदद करता है। अपने स्वयं के कस्टम परिवेश चर को परिभाषित और सेट करके, आप ऐप्स, निर्देशिकाओं, URL और अन्य क

  1. Bash . में चर का उपयोग करना

    कंप्यूटर विज्ञान (और आकस्मिक कंप्यूटिंग) में, एक चर स्मृति में एक स्थान है जो बाद में उपयोग के लिए मनमानी जानकारी रखता है। दूसरे शब्दों में, यह आपके लिए डेटा डालने और डेटा निकालने के लिए एक अस्थायी भंडारण कंटेनर है। बैश शेल में, वह डेटा एक शब्द हो सकता है (एक स्ट्रिंग , कंप्यूटर भाषा में) या एक संख्

  1. पावरशेल में पर्यावरण चर

    पर्यावरण चर आपके Linux, Mac, या Windows कंप्यूटर के लिए वैश्विक सेटिंग्स हैं, जिन्हें कमांड निष्पादित करते समय उपयोग करने के लिए सिस्टम शेल के लिए संग्रहीत किया जाता है। कई इंस्टॉलेशन या उपयोगकर्ता निर्माण के दौरान डिफ़ॉल्ट रूप से सेट होते हैं। उदाहरण के लिए, जब आप लॉग इन करते हैं तो आपकी होम निर्द