हमने पहले बैश में वेरिएबल का उपयोग करके कवर किया है - यह लेख बैश की व्याख्या करेगा सरणी चर और कुछ उदाहरण उपयोग प्रदान करते हैं।
सरणी क्या है
एक सरणी एक प्रकार का चर है जिसमें कई मान हो सकते हैं। यह उन मूल्यों की एक सूची है जिनके माध्यम से आप लूप कर सकते हैं और प्रत्येक व्यक्तिगत मूल्य पर संचालन कर सकते हैं।
उदाहरण के लिए, हो सकता है कि आप फ़ाइलों की सूची पर कोई क्रिया करना चाहें। उस सूची को एक सरणी के रूप में संग्रहीत करके, आप उसमें फ़ाइल नामों के माध्यम से लूप कर सकते हैं और प्रत्येक पर कार्रवाई कर सकते हैं।
सरणी को अनुक्रमित किया जाता है, सरणी में प्रत्येक आइटम की स्थिति को 0 से शुरू होने वाली संख्या द्वारा दर्शाया जाता है ।
बैश सरणियों के लिए यह आवश्यक नहीं है कि सरणी तत्वों को अनुक्रमित किया जाए लगातार - या बिना अंतराल के आसन्न - उदाहरण के लिए, आपके पास सरणी स्थिति 0, 3, 17 के बीच कोई मान नहीं हो सकता है।
आप Linux दस्तावेज़ीकरण प्रोजेक्ट पर बैश सरणियों के बारे में अधिक जानकारी प्राप्त कर सकते हैं।
बैश एरे बनाना
बैश सरणियों में किसी भी प्रकार का बैश चर हो सकता है - पथ, तार, संख्याएँ - यहाँ तक कि अन्य सरणियाँ।
आपको अपनी शैल स्क्रिप्ट में फ़ाइल पथों को स्ट्रिंग्स में क्यों लपेटना चाहिए
नीचे उल्लिखित सरणियों को घोषित करने के कई तरीके हैं।
अप्रत्यक्ष घोषणा
सरणी तत्व के मान को निर्दिष्ट करके सरणी को अप्रत्यक्ष रूप से घोषित किया जा सकता है - सरणी को दिए गए मान के साथ सरणी तत्व के साथ बनाया जाएगा।
ARRAYNAME[INDEX]=VALUE
उदाहरण के लिए:
#!/bin/bash peopleArray[3]="Tom"
सरणी PeopleArray जब सरणी में कोई मान असाइन किया जाता है तो स्वचालित रूप से (अप्रत्यक्ष रूप से) बनाया जाएगा - इस मामले में, "टॉम" मान को नए बनाए गए PeopleArray में अनुक्रमणिका 3 को असाइन किया गया है ।
प्रत्यक्ष घोषणा
डिक्लेयर कमांड का उपयोग किसी ऐरे को परिभाषित करने के लिए भी किया जा सकता है:
declare -a ARRAYNAME
उदाहरण के लिए:
declare -a peopleArray
यह एक खाली सरणी बनाएगा जिसे PeopleArray . कहा जाता है ।
कंपाउंड असाइनमेंट के माध्यम से बनाना
यह वह तरीका है जिसका आप शायद सबसे अधिक उपयोग करेंगे। यह पहले से असाइन किए गए मानों के साथ एक सरणी बनाता है।
ARRAYNAME=(value1 value2 ...)
यह चर नाम के लिए सरणी का मान निर्दिष्ट करता है। सरणी मान () . में समाहित हैं (मानक कोष्ठक) और रिक्त स्थान से अलग। रिक्त स्थान वाले मान उद्धृत किए जाने चाहिए।
उदाहरण के लिए:
peopleArray=("Tom", "Bill", "Theodore Baker Sr.")
ऐरे को मान असाइन करना
सरणी के अंत में एक नया मान जोड़ना
किसी सरणी में कोई मान जोड़ने के लिए, बिना किसी अनुक्रमणिका के मान निर्दिष्ट करें:
ARRAYNAME[]=VALUE
उदाहरण के लिए:
peopleArray[]="Tony"
मान को किसी सरणी में बदलना
किसी मान को बदलने के लिए, वर्तमान मान के सूचकांक पर मान को अधिलेखित कर दें।
उदाहरण के लिए, यदि आपके पास अनुक्रमणिका 7 के मान के साथ एक सरणी है जिसे आप बदलना चाहते हैं:
peopleArray[7]="Tony"
एक सरणी में मान हटाना
अनसेट . का उपयोग करके किसी सरणी से मान हटाएं कमांड और ऐरे इंडेक्स को निर्दिष्ट करना:
unset ARRAYNAME[INDEX]
उदाहरण के लिए:
unset peopleArray[1]
…सरणी में दूसरा मान हटा देगा PeopleArray ।
ऐरे मानों को एक्सेस करना
किसी सरणी में मान तक पहुंचने के लिए, आपको घुंघराले ब्रेसिज़ . का उपयोग करना होगा - अन्यथा, बैश सरणी अनुक्रमणिका वाले कोष्ठकों की सही व्याख्या नहीं करेगा:
echo ${ARRAYNAME[INDEX]}
उदाहरण के लिए:
#!/bin/bash peopleArray=("Tom", "Bill", "Theodore Baker Sr.") echo ${peopleArray[0]}
...आउटपुट होगा:
Tom
जबकि यदि अंतिम पंक्ति थी:
echo $peopleArray[0]
लूपिंग ऐरे
प्रत्येक तत्व पर संचालन करने के लिए आप सरणियों के साथ जो सबसे आम काम करेंगे, वह उनके माध्यम से लूप है। हम चीजों से बहुत आगे हैं और इस लेख को पहले ही कवर कर चुके हैं।