Bash Scripting परिचय
Alex Scriven
Data Scientist
Bash में arrays के दो प्रकार:
In Python: my_list = [1,3,2,4]
In R: my_vector <- c(1,3,2,4)
Bash में numerical-indexed array दो तरीकों से बना सकते हैं.
declare -a my_first_array
my_first_array=(1 2 3)
याद रखें - equals साइन के आस-पास स्पेस न रखें!
Bash में array elements को अलग करने के लिए commas इस्तेमाल नहीं होते:
यह सही नहीं है:
my_first_array=(1, 2, 3)
यह सही है:
my_first_array=(1 2 3)
array[@] से लौटाया जा सकता है. ध्यान दें, इन properties को एक्सेस करते समय array नाम के चारों ओर curly brackets जरूरी हैं.my_array=(1 3 5 2)
echo ${my_array[@]}
1 3 5 2
#array[@] से मिलेगीecho ${#my_array[@]}
4
Square brackets से array elements एक्सेस करें.
my_first_array=(15 20 300 42)
echo ${my_first_array[2]}
300
Index notation से array elements सेट करें.
my_first_array=(15 20 300 42 23 2 4 33 54 67 66)my_first_array[0]=999echo ${my_first_array[0]}
999
$ न लगाएँ, जैसे $my_first_array[0]=999 काम नहीं करेगा.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
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
अगर आप 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 --version से जाँचेंIn Python:
my_dict = {'city_name': "New York", 'population': 14000000}
In R:
my_list = list(city_name = c('New York'), population = c(14000000))
Associative array सिर्फ declare सिंटैक्स (और uppercase -A) से बना सकते हैं.
आप पहले declare कर के बाद में elements जोड़ें, या एक ही लाइन में करें.
चलो एक 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
वैकल्पिक रूप से, एक लाइन में 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 परिचय