हमने पहले Bash में वेरिएबल्स के उपयोग को कवर किया है – यह लेख Bash array वेरिएबल्स की व्याख्या करेगा और कुछ उदाहरण उपयोग प्रदान करेगा।
Array क्या है
Array एक प्रकार का वेरिएबल है जो कई मान रख सकता है। यह मानों की एक सूची है जिसके माध्यम से आप लूप कर सकते हैं और प्रत्येक व्यक्तिगत मान पर ऑपरेशन कर सकते हैं।
उदाहरण के लिए, आप फ़ाइलों की एक सूची पर कोई क्रिया करना चाह सकते हैं। उस सूची को array के रूप में संग्रहीत करके, आप उसमें फ़ाइल नामों के माध्यम से लूप कर सकते हैं और प्रत्येक पर क्रिया कर सकते हैं।
Arrays अनुक्रमित होते हैं, जिसमें array में प्रत्येक आइटम की स्थिति 0 से शुरू होने वाली संख्या द्वारा दर्शाई जाती है।
Bash arrays को आवश्यकता नहीं है कि array तत्व सन्निकट रूप से अनुक्रमित हों – या बिना अंतराल के आसन्न – उदाहरण के लिए, आप array स्थितियों 0, 3, 17 पर मान रख सकते हैं, बीच में कोई मान नहीं।
आप Linux Documentation Project पर Bash arrays के बारे में अधिक जान सकते हैं।
Bash Arrays बनाना
Bash arrays किसी भी प्रकार के bash वेरिएबल को समाहित कर सकते हैं – पथ, स्ट्रिंग्स, नंबर – यहां तक कि अन्य arrays भी।
आपके Shell स्क्रिप्ट्स में फ़ाइल पथ को स्ट्रिंग्स में लपेटने के कारण
Arrays घोषित करने के कई तरीके हैं, जिनकी रूपरेखा नीचे दी गई है।
अप्रत्यक्ष घोषणा (Indirect Declaration)
Arrays को अप्रत्यक्ष रूप से array तत्व का मान निर्दिष्ट करके घोषित किया जा सकता है – दिए गए मान के साथ array तत्व के साथ array स्वतः बन जाएगा।
ARRAYNAME[INDEX]=VALUE
उदाहरण के लिए:
#!/bin/bash peopleArray[3]="Tom"
Array peopleArray स्वतः (अप्रत्यक्ष रूप से) तब बनेगा जब array में कोई मान निर्दिष्ट किया जाता है – इस मामले में, मान "Tom" नव निर्मित peopleArray में इंडेक्स 3 पर निर्दिष्ट है।
प्रत्यक्ष घोषणा (Direct Declaration)
declare कमांड का उपयोग भी array को परिभाषित करने के लिए किया जा सकता है:
declare -a ARRAYNAME
उदाहरण के लिए:
declare -a peopleArray
यह peopleArray नामक एक खाली array बनाएगा।
Compound Assignment के माध्यम से बनाना
यह वह विधि है जिसका आप शायद सबसे अधिक उपयोग करेंगे। यह पहले से निर्दिष्ट मानों के साथ एक array बनाता है।
ARRAYNAME=(value1 value2 ...)
यह array के मान को वेरिएबल नाम को निर्दिष्ट करता है। Array मान () (मानक ब्रैकेट्स) में समाहित होते हैं और स्पेस द्वारा अलग किए जाते हैं। स्पेस वाले मानों को कोट किया जाना चाहिए।
उदाहरण के लिए:
peopleArray=("Tom", "Bill", "Theodore Baker Sr.")
Array को मान निर्दिष्ट करना
Array के अंत में नया मान जोड़ना
Array में मान जोड़ने के लिए, बिना इंडेक्स निर्दिष्ट किए मान निर्दिष्ट करें:
ARRAYNAME[]=VALUE
उदाहरण के लिए:
peopleArray[]="Tony"
Array में मान बदलना
मान बदलने के लिए, वर्तमान मान के इंडेक्स पर मान को ओवरराइट करें।
उदाहरण के लिए, यदि आपके पास इंडेक्स 7 पर मान वाला एक array है जिसे आप बदलना चाहते हैं:
peopleArray[7]="Tony"
Array में मान हटाना
unset कमांड का उपयोग करके array से मान हटाएं और array इंडेक्स निर्दिष्ट करें:
unset ARRAYNAME[INDEX]
उदाहरण के लिए:
unset peopleArray[1]
…दूसरा मान peopleArray array में हटा देगा।
Array मानों तक पहुंचना
Array में मान तक पहुंचने के लिए, आपको कर्ली ब्रेसेस का उपयोग करना होगा – अन्यथा, Bash array इंडेक्स वाले ब्रैकेट्स की सही व्याख्या नहीं करेगा:
echo ${ARRAYNAME[INDEX]}
उदाहरण के लिए:
#!/bin/bash peopleArray=("Tom", "Bill", "Theodore Baker Sr.") echo ${peopleArray[0]}
…आउटपुट देगा:
Tom
जबकि यदि अंतिम लाइन होती:
echo $peopleArray[0]
Arrays के माध्यम से लूप करना
Arrays के साथ आप जो सबसे आम काम करेंगे, वह है उनके माध्यम से लूप करके प्रत्येक तत्व पर ऑपरेशन करना। हम चीजों से आगे हैं और पहले ही इस लेख को कवर कर चुके हैं।