Bash में Arrays

Bash Scripting परिचय

Alex Scriven

Data Scientist

Array क्या है?

Bash में arrays के दो प्रकार:

  • एक array
    • 'नॉर्मल' numerical-indexed स्ट्रक्चर.
    • Python में 'list' या R में 'vector' कहा जाता है.

In Python: my_list = [1,3,2,4]

In R: my_vector <- c(1,3,2,4)

Bash Scripting परिचय

Bash में array बनाना

Bash में numerical-indexed array दो तरीकों से बना सकते हैं.

  1. बिना elements जोड़े declare करें
declare -a my_first_array
  1. बनाते समय elements भी जोड़ें
my_first_array=(1 2 3)

याद रखें - equals साइन के आस-पास स्पेस न रखें!

Bash Scripting परिचय

Commas से सावधान!

Bash में array elements को अलग करने के लिए commas इस्तेमाल नहीं होते:

यह सही नहीं है:

my_first_array=(1, 2, 3)

यह सही है:

my_first_array=(1 2 3)
Bash Scripting परिचय

ज़रूरी array properties

  • सभी elements को array[@] से लौटाया जा सकता है. ध्यान दें, इन properties को एक्सेस करते समय array नाम के चारों ओर curly brackets जरूरी हैं.
my_array=(1 3 5 2)
echo ${my_array[@]}
1 3 5 2
  • array की length #array[@] से मिलेगी
echo ${#my_array[@]}
4
Bash Scripting परिचय

Array elements पर काम

Square brackets से array elements एक्सेस करें.

my_first_array=(15 20 300 42)
echo ${my_first_array[2]}
300
  • याद रखें: Bash में arrays zero-indexed होते हैं, Python की तरह (R से अलग!)
Bash Scripting परिचय

Array elements पर काम

Index notation से array elements सेट करें.

my_first_array=(15 20 300 42 23 2 4 33 54 67 66)

my_first_array[0]=999
echo ${my_first_array[0]}
999
  • याद रखें: किसी index को overwrite करते समय $ न लगाएँ, जैसे $my_first_array[0]=999 काम नहीं करेगा.
Bash Scripting परिचय

Array elements पर काम

array[@]:N:M notation से array का subset 'slice' करें.

  • यहाँ N starting index है और M लौटाने वाले elements की गिनती.
my_first_array=(15 20 300 42 23 2 4 33 54 67 66)
echo ${my_first_array[@]:3:2}
42 23
Bash Scripting परिचय

Arrays में append करना

array+=(elements) से array में append करें.

उदाहरण:

my_array=(300 42 23 2 4 33 54 67 66)

my_array+=(10) echo ${my_array[@]}
300 42 23 2 4 33 54 67 66 10
Bash Scripting परिचय

Arrays में (ना) append करना

अगर आप append करते समय parentheses ना लगाएँ तो क्या होगा? देखते हैं.

उदाहरण:

my_array=(300 42 23 2 4 33 54 67 66)
my_array+=10
echo ${my_array[@]}
30010 42 23 2 4 33 54 67 66

स्ट्रिंग 10 बस पहले element के साथ जुड़ जाएगी. यह हमारा मकसद नहीं!

Bash Scripting परिचय

Associative arrays

  • एक associative array
    • नॉर्मल array जैसा, लेकिन numerical indexes की जगह key-value pairs होते हैं
    • Python के dictionary या R के list जैसा
    • नोट: यह केवल Bash 4 से उपलब्ध है. कुछ आधुनिक Macs में पुराना Bash है! टर्मिनल में bash --version से जाँचें

In Python:

my_dict = {'city_name': "New York", 'population': 14000000}

In R:

my_list = list(city_name = c('New York'), population = c(14000000))
Bash Scripting परिचय

Associative array बनाना

Associative array सिर्फ declare सिंटैक्स (और uppercase -A) से बना सकते हैं.

आप पहले declare कर के बाद में elements जोड़ें, या एक ही लाइन में करें.

  • 'keys' को square brackets में रखें, equals साइन के बाद value दें.
    • आप कई elements एक साथ जोड़ सकते हैं.
Bash Scripting परिचय

Associative array उदाहरण

चलो एक associative array बनाते हैं:

declare -A city_details # पहले declare करें

city_details=([city_name]="New York" [population]=14000000) # elements जोड़ें
echo ${city_details[city_name]} # key से index करके value लें
New York
Bash Scripting परिचय

Associative array बनाना

वैकल्पिक रूप से, एक लाइन में associative array बनाएँ और assign करें

  • बाकी सब वही है
declare -A city_details=([city_name]="New York" [population]=14000000)

Associative array की 'keys' को ! के साथ एक्सेस करें

echo ${!city_details[@]} # सभी keys लौटाएँ
city_name population
Bash Scripting परिचय

अभ्यास करते हैं!

Bash Scripting परिचय

Preparing Video For Download...