यह लेख आपको दिखाएगा कि लिनक्स में बैश और शेल स्क्रिप्ट में चर का उपयोग कैसे करें।
बैश (या लिनक्स शेल) स्क्रिप्ट वे फ़ाइलें होती हैं जिन्हें आप सामान्य कार्यों को स्वचालित करने और अपने आप को कुछ समय बचाने के लिए कमांड युक्त लिखते हैं।
चर स्क्रिप्ट में ऐसी चीजें हैं जो बाद में उपयोग के लिए एक मूल्य रखती हैं - एक संख्या, या एक फ़ाइल नाम, या कुछ भी, वास्तव में।
लिनक्स शेल स्क्रिप्ट में चर को परिभाषित और उपयोग करने का तरीका यहां दिया गया है। इन उदाहरणों को सबसे लोकप्रिय Linux शैल, बैश, और Zsh में काम करना चाहिए।
बैश वैरिएबल घोषित करना
बैश वैरिएबल डिफ़ॉल्ट रूप से टाइप नहीं होते हैं। आप बता नहीं कर सकते यह एक चर के साथ क्या किया जा सकता है - यह निहित है।
अनिवार्य रूप से, सभी चर को स्ट्रिंग के रूप में संग्रहीत किया जाता है और जब उनका उपयोग किया जाता है तो संदर्भ के अनुसार संभाला जाता है - यदि किसी स्ट्रिंग में कोई संख्या होती है, तो इसे एक के रूप में माना जाएगा यदि आप इसके साथ वृद्धि करने का प्रयास करते हैं, आदि।
नीचे, कई चर घोषित किए गए हैं – MY_STRING , MY_FILE_PATH, और MY_NUMBER . ये सभी टाइप न किए गए चर हैं।
#!/bin/bash MY_STRING="Hello Linux!" MY_FILE_PATH=/path/to/my/file.txt MY_NUMBER=4
# के बारे में जानने के लिए यहां क्लिक करें!
कमांड सिंटैक्स 'घोषित' करें
ध्यान दें कि घोषणा बैश . के लिए विशिष्ट है पर्यावरण और यदि आप एक अलग शेल का उपयोग कर रहे हैं तो मौजूद नहीं हो सकते हैं।
घोषणा . का सिंटैक्स इस प्रकार है:
declare OPTIONS variable_name=variable_value
ध्यान दें कि:
- विकल्प वैकल्पिक है और चर के प्रकार या व्यवहार को निर्धारित करने के लिए नीचे दी गई तालिका से चुना जा सकता है
- variable_name उस चर का नाम है जिसे आप परिभाषित/घोषित करना चाहते हैं
- variable_value उक्त चर का मान है
घोषणा करें विकल्प | <थ>अर्थ||
---|---|---|
-r | केवल पढ़ने के लिए | केवल-पढ़ने के लिए वैरिएबल घोषित करें |
-i | पूर्णांक | एक पूर्णांक चर घोषित करें |
-a | सरणी | एक वेरिएबल घोषित करें जो एक सरणी है |
-f | फ़ंक्शन (फ़ंक्शन) | एक वेरिएबल घोषित करें जो एक फ़ंक्शन है |
-x | निर्यात | एक वैरिएबल घोषित करें जिसे स्क्रिप्ट के बाहर निर्यात किया जा सकता है |
'घोषणा' कमांड उदाहरण
यहां एक स्ट्रिंग वेरिएबल घोषित किया गया है (यानी, कोई विकल्प . नहीं आपूर्ति), उसके बाद एक पूर्णांक चर।
#!/bin/bash declare MY_STRING="Hello Linux!" declare -i MY_NUMBER=4
अब, यदि आपने MY_STRING के मान को MY_NUMBER के मान पर निर्दिष्ट करने का प्रयास किया है, तो MY NUMBER को 0 पर सेट किया जाएगा - क्योंकि स्ट्रिंग किसी संख्या का मूल्यांकन नहीं करती है।
घोषणा करें केवल बुनियादी टाइपिंग कार्यक्षमता प्रदान करता है, इसलिए यह वास्तव में भरोसा करने के लिए कुछ नहीं है- लेकिन यह सुनिश्चित करने के लिए उपयोगी हो सकता है कि एक चर केवल एक निश्चित प्रकार का मान धारण कर सकता है।
बैश वैरिएबल का उपयोग करना
किसी वैरिएबल का इस्तेमाल करने के लिए, उसके पहले $ . लगाएं (डॉलर का चिह्न)। उदाहरण के लिए:
#!/bin/bash MY_STRING="Hello Linux!" MY_FILE_PATH=/path/to/my/file.txt MY_NUMBER=4 echo $MY_STRING # Prints the string variable touch $MY_FILE_PATH # Create or update the file at the given path MY_NUMBER=$(($MY_NUMBER+1)) # Increment MY_NUMBER by evaluating a mathmatical formula
स्पर्श . के उपयोग पर ध्यान दें उपरोक्त स्क्रिप्ट में फ़ाइल बनाने या अपडेट करने का आदेश।
डबल ब्रैकेट के उपयोग पर ध्यान दें (()) - यह बैश को उनके भीतर निहित कथन का मूल्यांकन करने के लिए कहता है - अन्यथा, MY_NUMBER को "$MY NUMBER+1" वर्णों वाला एक स्ट्रिंग मान दिया जाएगा।
स्ट्रिंग्स में वेरिएबल का उपयोग करना
कभी-कभी आपको एक स्ट्रिंग में एक चर के मान का उपयोग करने की आवश्यकता हो सकती है - उदाहरण के लिए, यदि आपने उपयोगकर्ता इनपुट से फ़ाइल पथ एकत्र किए हैं।
एक स्ट्रिंग में एक वेरिएबल को शामिल करने के लिए, बस इसे किसी अन्य स्ट्रिंग के रैप्ड कोट्स में उपयोग करें:
echo "This is my string: $MY_STRING"
स्थानीय चर
स्थानीय वेरिएबल केवल उस दायरे में उपलब्ध होते हैं जिसमें वे बनाए जाते हैं, यानी, विशेष फ़ंक्शन या लूप के अंदर जहां उन्हें परिभाषित किया जाता है।
#!/bin/bash function myFunction { local MY_STRING="This string is only available here, in this function" echo $MY_STRING } echo $MY_STRING # Will print nothing, as the variable was defined locally within a function