बैश स्क्रिप्ट आपको कमांड लाइन कार्यों को स्वचालित करने का एक सुविधाजनक तरीका देती है।
बैश के साथ, आप वही काम कर सकते हैं जो आप अन्य स्क्रिप्टिंग या प्रोग्रामिंग भाषाओं में करेंगे। आप चर बना सकते हैं और उनका उपयोग कर सकते हैं, लूप निष्पादित कर सकते हैं, सशर्त तर्क का उपयोग कर सकते हैं और डेटा को सरणियों में संग्रहीत कर सकते हैं।
जबकि कार्यक्षमता बहुत परिचित हो सकती है, बैश का सिंटैक्स मुश्किल हो सकता है। इस लेख में, आप सीखेंगे कि सरणियों को कैसे घोषित किया जाए और फिर उन्हें अपने कोड में कैसे उपयोग किया जाए।
बैश में एक सरणी कैसे घोषित करें
बैश में एक सरणी घोषित करना आसान है, लेकिन सिंटैक्स पर ध्यान दें। यदि आप अन्य भाषाओं में प्रोग्रामिंग के अभ्यस्त हैं, तो कोड परिचित लग सकता है, लेकिन सूक्ष्म अंतर हैं जो आसानी से छूट जाते हैं।
अपनी सरणी घोषित करने के लिए, इन चरणों का पालन करें:
- अपनी सरणी को एक नाम दें
- उस चर नाम का एक समान चिह्न के साथ अनुसरण करें। समान चिह्न नहीं होना चाहिए इसके आस-पास कोई जगह हो
- सरणी को कोष्ठक में संलग्न करें (जावास्क्रिप्ट की तरह कोष्ठक नहीं)
- उद्धरणों का उपयोग करके अपने तार टाइप करें, लेकिन बिना अल्पविराम के उनके बीच
आपकी सरणी घोषणा कुछ इस तरह दिखाई देगी:
myArray=("cat" "dog" "mouse" "frog)
इतना ही! यह इतना आसान है।
बैश में किसी सरणी को कैसे एक्सेस करें
आपके सरणी के माध्यम से लूप करने के कुछ अलग तरीके हैं। आप या तो तत्वों के माध्यम से लूप कर सकते हैं, या इंडेक्स के माध्यम से लूप कर सकते हैं।
सरणी तत्वों के माध्यम से कैसे लूप करें
सरणी तत्वों के माध्यम से लूप करने के लिए, आपके कोड को कुछ इस तरह दिखना होगा:
for str in ${myArray[@]}; do
echo $str
done
इसे तोड़ने के लिए:यह कुछ हद तक forEach
. का उपयोग करने जैसा है जावास्क्रिप्ट में। सरणी (myArray) में प्रत्येक स्ट्रिंग (str) के लिए, उस स्ट्रिंग को प्रिंट करें।
इस लूप का आउटपुट इस तरह दिखता है:
cat
dog
mouse
frog
नोट :@
वर्गाकार कोष्ठकों में प्रतीक इंगित करता है कि आप सभी . के माध्यम से लूप कर रहे हैं सरणी में तत्वों की। यदि आप इसे छोड़ दें और बस लिखें for str in ${myArray}
, सरणी में केवल पहली स्ट्रिंग मुद्रित की जाएगी।
सरणी सूचकांकों के माध्यम से कैसे लूप करें
वैकल्पिक रूप से, आप सरणी के सूचकांकों के माध्यम से लूप कर सकते हैं। यह for
. जैसा है जावास्क्रिप्ट में लूप, और तब उपयोगी होता है जब आप प्रत्येक तत्व की अनुक्रमणिका तक पहुँचने में सक्षम होना चाहते हैं।
इस पद्धति का उपयोग करने के लिए, आपके कोड को कुछ इस तरह दिखना होगा:
for i in ${!myArray[@]}; do
echo "element $i is ${myArray[$i]}"
done
आउटपुट इस तरह दिखेगा:
element 0 is cat
element 1 is dog
element 2 is mouse
element 3 is frog
नोट :myArray
. की शुरुआत में विस्मयादिबोधक चिह्न चर इंगित करता है कि आप सूचकांक . तक पहुंच रहे हैं सरणी के और तत्वों को स्वयं नहीं। यह भ्रमित करने वाला हो सकता है यदि आप विस्मयादिबोधक चिह्न के अभ्यस्त हैं जो निषेध का संकेत देता है, तो उस पर ध्यान दें।
एक और नोट :बैश को आमतौर पर चर के लिए घुंघराले ब्रेसिज़ की आवश्यकता नहीं होती है, लेकिन यह सरणियों के लिए करता है। तो आप देखेंगे कि जब आप किसी सरणी का संदर्भ देते हैं, तो आप सिंटैक्स ${myArray}
के साथ ऐसा करते हैं , लेकिन जब आप किसी स्ट्रिंग या संख्या का संदर्भ देते हैं, तो आप केवल एक डॉलर चिह्न का उपयोग करते हैं:$i
।
निष्कर्ष
स्वचालित कमांड लाइन व्यवहार बनाने के लिए बैश स्क्रिप्ट उपयोगी हैं, और सरणियाँ एक बेहतरीन उपकरण हैं जिनका उपयोग आप डेटा के कई टुकड़ों को संग्रहीत करने के लिए कर सकते हैं।
उन्हें घोषित करना और उनका उपयोग करना कठिन नहीं है, लेकिन यह अन्य भाषाओं से अलग है, इसलिए गलती करने से बचने के लिए पूरा ध्यान दें।