अधिकांश प्रोग्रामिंग भाषाओं की तरह, बैश स्क्रिप्ट को कभी-कभी संबंधित मूल्यों की सूची से निपटने की आवश्यकता होती है। सबसे सरल रूप मानक सरणी है।

बैश में, सरणी प्रोग्रामिंग काफी अलग है, खासकर जब सिंटैक्स की बात आती है। बैश सरणियाँ भी सख्ती से एक-आयामी हैं, लेकिन उनके पास अभी भी बहुत सारे उपयोग हैं।

बैश एरेज़ का मूल सिंटैक्स

बैश में एक सरणी बनाना सीधा है। उदाहरण के लिए, आप कोष्ठक का उपयोग करके एक संपूर्ण सरणी प्रारंभ कर सकते हैं:

शहर = (लंदन पेरिस मिलान "न्यूयॉर्क")

(आप इस शहर के उदाहरण से सभी कोड पा सकते हैं यह GitHub Gist.)

यह एक सरणी बनाता है जिसमें चार तत्व होते हैं, जो 0 से 3 तक अनुक्रमित होते हैं। ध्यान दें कि चौथा मान एक उद्धृत स्ट्रिंग है जिसमें दो शब्द हैं। आपको यह स्पष्ट करने के लिए रिक्त स्थान वाले मानों को उद्धृत करना होगा कि वे अलग-अलग मान नहीं हैं।

आप ब्रैकेट सिंटैक्स का उपयोग करके एकल तत्व तक पहुँच सकते हैं जो प्रोग्रामिंग भाषाओं में सामान्य है:

शहर[2]

चूंकि यह बैश है, इसलिए आपको अभिव्यक्ति में मूल्य का वास्तव में उपयोग करने के लिए कुछ परिशोधन की आवश्यकता होगी:

  • आपको डॉलर का चिह्न तैयार करना होगा ($) चर नाम के लिए।
  • instagram viewer
  • आपको ब्रेसिज़ का उपयोग करने की भी आवश्यकता होगी ({}) चर नाम को असंदिग्ध बनाने के लिए। डिफ़ॉल्ट रूप से, बैश व्यवहार करेगा $शहर[2] नाम के एक चर के रूप में शहर. कोष्ठक और अनुक्रमणिका संख्या का भी मूल्यांकन करने के लिए बैश बताने के लिए ब्रेसिज़ जोड़ें।

मानक बैश सरणी एक्सेस सिंटैक्स तब है:

${variable_name[index]}

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

#!/बिन/बैश

शहर = (लंदन पेरिस मिलान "न्यूयॉर्क")
इको ${शहर[3]}

# न्यूयॉर्क

एक सरणी को एक साथ शुरू करने के बजाय, आप इसे चरण-दर-चरण असाइन कर सकते हैं। यह स्क्रिप्ट पिछले उदाहरण के बराबर लंबी है:

#!/बिन/बैश

शहर[0]=लंदन
शहर [1] = पेरिस
शहर[2]=मिलान
शहर [3] = "न्यूयॉर्क"
इको ${शहर[3]}

# न्यूयॉर्क

ध्यान दें, किसी भी मामले में, आपको सावधान रहना होगा कि बराबर चिह्न के आस-पास कोई स्थान न जोड़ें। "शहर [0] = लंदन", बराबर चिह्न के आसपास रिक्त स्थान के साथ, एक त्रुटि उत्पन्न करेगा।

बैश सरणियों के लिए अधिक उपयोग

संबंधित डेटा संग्रहीत करने के लिए Arrays एकदम सही हैं। किसी संख्या का वर्गमूल प्राप्त करने के लिए यहां एक (बहुत सीमित) शेल स्क्रिप्ट है:

#!/बिन/बैश

वर्ग [1] = 1
वर्ग [4] = 2
वर्ग [9] = 3
वर्ग [16] = 4
वर्ग [25] = 5

इको ${sqrt[$1]}

ध्यान दें कि स्क्रिप्ट मान का उपयोग करती है $1 सरणी अनुक्रमणिका के रूप में। $1 स्क्रिप्ट को प्राप्त होने वाले पहले कमांड-लाइन तर्क का प्रतिनिधित्व करता है, इसलिए आप इस स्क्रिप्ट को इस तरह चला सकते हैं:

$ ./sqrt.sh 9
3

आप के बारे में पता हो सकता है $(सेमीडी) एक कमांड को निष्पादित करने और एक चर में इसके आउटपुट को सहेजने के लिए सिंटैक्स। फाइलों की एक सरणी के साथ काम करने के लिए आप इसे सरणी प्रारंभिक वाक्यविन्यास के साथ जोड़ सकते हैं:

एआर = ($ (एलएस))

एक सरणी है अक्सर पुनरावृति के लिए एक आदर्श डेटा संरचना और बैश कोई अपवाद नहीं है। आप प्रत्येक तत्व को प्रिंट करने के लिए या प्रत्येक सदस्य पर एक ऑपरेशन करने के लिए एक सरणी के माध्यम से लूप कर सकते हैं।

आप एक सरणी को संबोधित कर सकते हैं के लिए.. में कुंडली, इसकी सामग्री पर पुनरावृति करने के लिए। उदाहरण के लिए, यहां एक साधारण लूप है जो सरणी में प्रत्येक फ़ाइल में पंक्तियों की संख्या को प्रिंट करता है आगमन:

"${arr[@]}" में फ़ाइल के लिए; करना
wc -l "$ फ़ाइल"
किया हुआ

#3 वातावरण
# 547 httpd.conf
# ...

ध्यान दें कि यह पैटर्न का उपयोग करता है @ सरणी से सभी तत्वों को पुनः प्राप्त करने के लिए प्रतीक।

अधिक बैश ऐरे सिंटेक्स

आप निम्न का उपयोग करके किसी सरणी में आइटम्स की संख्या प्राप्त कर सकते हैं:

गूंज ${#शहर[@]}

# 4

आप एक मानक सरणी के अंत में एक नया तत्व जोड़ सकते हैं जैसे:

गिरफ्तार+=(4)

तो सूची में पांचवां शहर जोड़ने के लिए:

शहर+=(रोम)
गूंज ${शहर[@]}

#लंदन पेरिस मिलान न्यूयॉर्क रोम

एक सरणी का एक हिस्सा निकालने के लिए, आप एक सिंटैक्स का उपयोग कर सकते हैं जो कई अन्य भाषाओं के स्लाइस ऑपरेशन का अनुमान लगाता है:

${गिरफ्तारी[@]:s: n}

यह सिंटैक्स स्थिति से शुरू होने वाले सरणी का एक टुकड़ा लौटाएगा एस और युक्त एन सामान। आप इसे छोड़ सकते हैं :एन से सभी आइटम निकालने के लिए भाग एस सूची के अंत तक।

इको ${शहर[@]:2:2}
#मिलान न्यूयॉर्क

इको ${शहर[@]:3}
#न्यूयॉर्क रोम

बैश में कई विशेषताएं हैं, वे बस कुछ सीख लेते हैं

बैश में सरणियों की सीमाएँ हो सकती हैं, लेकिन वे वही बुनियादी कार्यक्षमता प्रदान करते हैं जो अधिकांश प्रोग्रामिंग भाषाएँ करती हैं। हालाँकि बैश ने ऐतिहासिक रूप से केवल एक-आयामी सरणियों का समर्थन किया है, समय बदल रहा है। बैश का नवीनतम संस्करण, 4, सहयोगी सरणियों और नकारात्मक सरणी अनुक्रमण का समर्थन करता है।

आप बैश के किसी भी संस्करण का उपयोग कर रहे हैं, इसकी बारीकियों को समझना महत्वपूर्ण है। यहां तक ​​कि सामान्य परिवर्तनशील वाक्य-विन्यास में भी बहुत सारी विशिष्टताएँ होती हैं।

बैश चर समझाया: उदाहरणों के साथ एक सरल गाइड

आगे पढ़िए

साझा करनाकलरवसाझा करनाईमेल

संबंधित विषय

  • प्रोग्रामिंग
  • लिनक्स
  • प्रोग्रामिंग
  • लिनक्स बैश शेल
  • स्क्रिप्टिंग

लेखक के बारे में

बॉबी जैक (71 लेख प्रकाशित)

बॉबी एक प्रौद्योगिकी उत्साही हैं जिन्होंने दो दशकों तक एक सॉफ्टवेयर डेवलपर के रूप में काम किया। MUO में, वह प्रोग्रामिंग सेक्शन के जूनियर एडिटर हैं। उन्हें गेमिंग का शौक है, स्विच प्लेयर मैगज़ीन में एडिटर-इन-चीफ के रूप में काम करते हुए, और ऑनलाइन प्रकाशन और वेब विकास के सभी पहलुओं में डूबे हुए हैं।

बॉबी जैक. की अन्य फ़िल्में-टीवी शो

हमारे समाचार पत्र के सदस्य बनें

तकनीकी युक्तियों, समीक्षाओं, निःशुल्क ई-पुस्तकों और अनन्य सौदों के लिए हमारे न्यूज़लेटर से जुड़ें!

सब्सक्राइब करने के लिए यहां क्लिक करें