एंड्रॉयड

बैश सरण

बैश ट्यूटोरियल 6: Arrays

बैश ट्यूटोरियल 6: Arrays

विषयसूची:

Anonim

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

बैश अर्रे

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

अंकीय रूप से अनुक्रमित सरणियों को नकारात्मक सूचकांकों का उपयोग करके अंत से पहुँचा जा सकता है, -1 का सूचकांक अंतिम तत्व है। सूचकांकों को सन्निहित नहीं होना चाहिए।

अधिकांश प्रोग्रामिंग भाषाओं के विपरीत, बैश एरे तत्वों को समान डेटा प्रकार का नहीं होना चाहिए। आप एक ऐसा सरणी बना सकते हैं जिसमें तार और संख्या दोनों होते हैं।

बैश बहुआयामी सरणियों का समर्थन नहीं करता है, और आपके पास सरणी तत्व नहीं हो सकते हैं जो सरणियाँ भी हैं।

एक सरणी में संग्रहीत किए जा सकने वाले तत्वों की अधिकतम संख्या की कोई सीमा नहीं है।

बैश ऐरे बनाना

बैश में ऐरे को अलग-अलग तरीकों से शुरू किया जा सकता है।

संख्यात्मक रूप से अनुक्रमित सरणियों का निर्माण

बैश वैरिएबल अनपेड हैं, किसी भी वेरिएबल को घोषित किए बिना इंडेक्सेड ऐरे के रूप में इस्तेमाल किया जा सकता है।

किसी सरणी को स्पष्ट रूप से घोषित करने के लिए, घोषित बिल्ड का उपयोग करें:

declare -a array_name

अनुक्रमणित सरणी बनाने का एक तरीका निम्नलिखित फ़ॉर्म का उपयोग करके है:

array_name=value_1 array_name=value_2 array_name=value_n

जहां index_* एक सकारात्मक पूर्णांक है।

न्यूमेरिक ऐरे बनाने का एक और तरीका है कि खाली जगह को अलग करके, कोष्ठक के भीतर तत्वों की सूची निर्दिष्ट करें:

array_name=(element_1 element_2 element_N)

जब सरणी ऊपर के रूप का उपयोग करके बनाई जाती है, तो अनुक्रमण शून्य पर शुरू होता है अर्थात पहले तत्व में 0 सूचकांक होता है।

सहयोगी सरणियाँ बनाना

संख्यात्मक रूप से अनुक्रमित के विपरीत, उपयोग किए जाने से पहले साहचर्य सरणियों को घोषित किया जाना चाहिए।

एक साहचर्य सरणी declare के लिए -A (अपरकेस) विकल्प के साथ declare बेसिन का उपयोग करें:

declare -A array_name

निम्नलिखित प्रपत्रों का उपयोग करके सहयोगी सरणियाँ बनाई जा सकती हैं:

declare -A array_name array_name=value_foo array_name=value_bar array_name=value_xyz

जहां index_* कोई भी स्ट्रिंग हो सकता है।

आप नीचे दिए गए फॉर्म का उपयोग करके एक सहयोगी सरणी भी बना सकते हैं:

declare -A array_name array_name=(=value_foo =value_bar =value_xyz)

संचालन संचालन करें

बैश सरणियाँ वाक्यविन्यास पहले थोड़ा अजीब लग सकता है, लेकिन इस लेख को पढ़ने के बाद यह अधिक समझ में आएगा।

संदर्भ तत्व

किसी एक तत्व को संदर्भित करने के लिए, आपको तत्व सूचकांक को जानना होगा।

किसी भी तत्व को निम्नलिखित सिंटैक्स का उपयोग करके संदर्भित किया जा सकता है:

${array_name} एक सरणी तत्व तक पहुंचने के लिए सिंटैक्स अधिकांश प्रोग्रामिंग भाषाओं के सिंटैक्स के समान है। शेल के फ़ाइल नाम विस्तार ऑपरेटरों से बचने के लिए घुंघराले ब्रेस ${} की आवश्यकता होती है।

1 सूचकांक के साथ तत्व को प्रिंट करते हैं:

## declare the array declare -a my_array=("Hydrogen" "Helium" "Lithium" "Beryllium") ## print element echo ${my_array}

Helium

## declare the array declare -a my_array=("Hydrogen" "Helium" "Lithium" "Beryllium") ## print all elements echo "${my_array}"

Hydrogen Helium Lithium Beryllium

@ और * बीच एकमात्र अंतर तब है जब ${my_array} फॉर्म डबल-कोट्स से घिरा हुआ है। इस मामले में, * एक एकल शब्द तक फैलता है जहां सरणी तत्व अंतरिक्ष के साथ अलग हो जाते हैं। @ प्रत्येक सरणी तत्व को एक अलग शब्द में विस्तारित करता है। सरणी तत्वों के माध्यम से अनपढ़ करने के लिए फ़ॉर्म का उपयोग करते समय यह विशेष रूप से महत्वपूर्ण है।

सरणी की कुंजी को प्रिंट करने के लिए जोड़ें ! सरणी नाम से पहले ऑपरेटर:

${!array_name}

यहाँ एक उदाहरण है:

## declare the array declare -a my_array=("Hydrogen" "Helium" "Lithium" "Beryllium") ## print all elements echo "${!my_array}"

0 1 2 3

ऐरे की लंबाई

किसी सरणी की लंबाई प्राप्त करने के लिए, निम्न फ़ॉर्म का उपयोग करें:

${#array_name} वाक्यविन्यास वही है जब सभी नाम संदर्भित करने वाले सभी तत्व सरणी नाम से पहले # वर्ण जोड़ते हैं।

## declare the array declare -a my_array=("Hydrogen" "Helium" "Lithium" "Beryllium") ## array Length echo ${#my_array}

4

सरणी के माध्यम से लूप

सरणी में प्रत्येक आइटम पर पुनरावृति करने का सबसे आम तरीका लूप का उपयोग करना है:

declare -a my_array=("Hydrogen" "Helium" "Lithium" "Beryllium") ## Array Loop for i in "${my_array}" do echo "$i" done

ऊपर दिया गया कोड ऐरे पर पुनरावृति करेगा और प्रत्येक तत्व को एक नई लाइन में प्रिंट करेगा:

Hydrogen Helium Lithium Beryllium

यहाँ सभी कुंजियों और मानों को प्रिंट करने का एक उदाहरण दिया गया है:

declare -a my_array=("Hydrogen" "Helium" "Lithium" "Beryllium") ## Array Loop for i in "${!my_array}" do echo "$i" "${my_array}" done

0 Hydrogen 1 Helium 2 Lithium 3 Beryllium

एक सरणी के माध्यम से लूप करने का एक और तरीका है, सरणी की लंबाई प्राप्त करना और C style लूप का उपयोग करना C style :

declare -a my_array=("Hydrogen" "Helium" "Lithium" "Beryllium") # Length of the array length=${#my_array} # Array Loop for ((i=0; i < ${length}; i++)) do echo $i ${my_array} done

0 Hydrogen 1 Helium 2 Lithium 3 Beryllium

एक नया तत्व जोड़ें

एक नए तत्व को बैश एरे में जोड़ने के लिए और इसके इंडेक्स को निर्दिष्ट करने के लिए निम्न फॉर्म का उपयोग करें:

my_array="New Element"

यहाँ एक उदाहरण है:

declare -a my_array=("Hydrogen" "Helium" "Lithium" "Beryllium") ## add new element my_array="Aluminum" ## print all elements echo "${my_array}"

Hydrogen Helium Lithium Beryllium Aluminum

इंडेक्स निर्दिष्ट किए बिना सरणी में एक नया तत्व जोड़ने का दूसरा तरीका += ऑपरेटर का उपयोग करके है। आप एक या एक से अधिक तत्व जोड़ सकते हैं:

declare -a my_array=("Hydrogen" "Helium" "Lithium" "Beryllium") ## add new elements my_array+=(Cobalt Nickel) ## print all elements echo "${my_array}"

Hydrogen Helium Lithium Beryllium Cobalt Nickel

किसी तत्व को हटाएं

किसी एक तत्व को हटाने के लिए, आपको तत्व सूचकांक को जानना होगा। एक तत्व को unset कमांड का उपयोग करके हटाया जा सकता है:

unset my_array

आइए एक उदाहरण देखें:

declare -a my_array=("Hydrogen" "Helium" "Lithium" "Beryllium") ## remove element unset my_array ## print all elements echo "${my_array}"

Hydrogen Helium Beryllium

निष्कर्ष

हमने बताया कि संख्यात्मक रूप से अनुक्रमित और साहचर्य सरणियों को कैसे बनाया जाए। हमने यह भी दिखाया है कि सरणियों के माध्यम से पुनरावृत्ति कैसे करें, सरणी की लंबाई की गणना करें, और तत्वों को जोड़ें और निकालें।

बश टर्मिनल