Paano Gumamit ng Mga Index Array sa Bash

Paano Gumamit Ng Mga Index Array Sa Bash



Nagbibigay ang Bash ng suporta para sa mga naka-index na array, na mahalagang mga listahan ng mga elemento na maaaring ma-access gamit ang kanilang index number. Partikular na kapaki-pakinabang ang mga naka-index na array kapag gusto mong mag-imbak at manipulahin ang maraming nauugnay na value, basahin pa ang artikulong ito para matutunan kung paano gumamit ng mga index array.

Ano ang Index Arrays

Ang mga naka-index na array ay isang koleksyon ng mga elemento sa bash na maaaring ma-access gamit ang isang index o isang susi. Ang mga array na ito ay maaaring gamitin upang mag-imbak at kumuha ng data sa isang partikular na pagkakasunud-sunod, na ginagawang mas madaling pamahalaan ang malaking halaga ng data. Ang syntax para sa pagdedeklara ng isang naka-index na array sa bash ay ang mga sumusunod:

< array_name > = ( elemento1 elemento2 elemento3 ... )

Dito, ang array_name ay ang pangalan ng array, at ang element1, element2, element3, at iba pa ay ang mga value na iimbak sa array. Ang mga halaga ay pinaghihiwalay ng whitespace at tandaan na maaari mo ring gamitin ang command na deklarasyon upang lumikha ng isang array.







Paano Gamitin ang Indexed Arrays sa Bash

Para gumawa ng index array sa bash, kailangan mo lang magdeklara ng variable at magtalaga dito ng mga value na nakapaloob sa mga panaklong at pinaghihiwalay ng mga puwang. Narito ang ilang mga halimbawa na nagpapakita kung paano gumamit ng mga naka-index na array sa bash:



Pag-aayos muli ng Listahan sa Bash

Kung mayroon kang listahan ng mga item sa isang tiyak na pagkakasunud-sunod at gusto mong muling ayusin ang mga ito sa ibang paraan. Maaari kang gumamit ng index array para gumawa ng bagong order para sa mga item, gaya ng sumusunod:



#!/bin/bash
mga bagay = ( 'mangga' 'Pinya' 'Strawberry' 'Cherry' 'Ubas' )
utos = ( 4 2 0 3 1 )
para sa i sa ' ${order[@]} '
gawin
echo ${item[$i]}
tapos na

Sa halimbawang ito, gumawa kami ng array na tinatawag na mga item na may limang elemento. Gumagawa din kami ng index array na tinatawag na order, na tumutukoy ng bagong order para sa mga item. Pagkatapos ay umiikot kami sa hanay ng order at gamitin ang bawat halaga bilang isang index upang makuha ang kaukulang item mula sa hanay ng mga item at i-print ito.





Pag-filter ng Listahan sa Bash

Kung mayroon kang listahan ng mga item at gusto mong i-filter ang ilang partikular na item batay sa isang kundisyon. Maaari kang gumamit ng index array upang subaybayan ang mga indeks ng mga item na nakakatugon sa kundisyon, tulad ng sumusunod:



#!/bin/bash
mga bagay = ( 'mangga' 'Pinya' 'Strawberry' 'Cherry' 'Ubas' )
mga indeks = ( )

para sa i sa ' ${!item[@]} '
gawin
kung [ [ ${item[$i]} == * 'r' * ] ]
pagkatapos
mga indeks+= ( $i )
maging
tapos na

para sa i sa ' ${mga indeks[@]} '
gawin
echo ${item[$i]}
tapos na

Sa halimbawang ito, gumawa kami ng array na tinatawag na mga item na may limang elemento. Gumagawa din kami ng isang walang laman na index array na tinatawag na mga indeks. Pagkatapos ay umiikot kami sa hanay ng mga item at suriin kung ang bawat item ay naglalaman ng titik na 'r'. Kung gagawin nito, idaragdag namin ang index nito sa hanay ng mga indeks. Sa wakas, umiikot kami sa hanay ng mga indeks at ginagamit ang bawat halaga bilang isang index upang makuha ang kaukulang item mula sa hanay ng mga item at i-print ito.

Nagbibilang ng mga Pangyayari sa Bash

Kung mayroon kang listahan ng mga item at gusto mong bilangin ang bilang ng mga paglitaw ng bawat item, maaari kang gumamit ng index array upang subaybayan ang mga bilang at narito ang isang halimbawa para sa pagpapakita:

#!/bin/bash
mga bagay = ( 'mangga' 'Pinya' 'Strawberry' 'Cherry' 'Ubas' )
binibilang = ( )

para sa i sa ' ${!item[@]} '
gawin
kung [ [ ! ' ${counts[@]} ' =~ ' ${item[$i]} ' ] ]
pagkatapos
bilang+= ( ' ${item[$i]} 1' )
iba pa
index =$ ( echo ' ${counts[@]} ' | tr '' '\n' | mahigpit na pagkakahawak -n '^ ${item[$i]} ' | kasama )
bilangin =$ ( echo ' ${counts[$index-1]} ' | gupitin -d '' -f2 )
binibilang [ $index - 1 ] = ' ${item[$i]} $((bilang+1) )'
maging
tapos na

para sa bilangin sa ' ${counts[@]} '
gawin
echo $count
tapos na

Una nitong sinisimulan ang isang array na tinatawag na 'mga item' na may listahan ng mga string. Pagkatapos ay idineklara nito ang isang walang laman na array na tinatawag na 'counts'. Ang isang para sa loop ay nilikha upang umulit para sa bawat item sa hanay ng 'mga item' at para sa bawat item ay tinitingnan nito kung mayroon na ito sa hanay ng 'mga bilang'.

Kung wala ito, idinaragdag nito ang item at ang bilang ng 1 sa hanay ng 'mga bilang'. Kung mayroon man, dinaragdagan nito ang bilang ng item na iyon sa array ng 'counts'. Sa wakas, upang i-print ang bawat item at ang kaukulang bilang nito ay ginagamit ang isa pang para sa loop. Ang output ng code na ito ay magpi-print ng bilang ng bawat item sa hanay ng 'mga item', na may hiwalay na pagbibilang ng mga duplicate.

Pag-update ng Listahan sa Bash

Kung mayroon kang listahan ng mga item at gusto mong magdagdag o magtanggal ng mga item mula dito, maaari kang gumamit ng index array para dito at narito ang isang halimbawa para sa pagpapakita:

#!/bin/bash
mga bagay = ( 'mangga' 'Pinya' 'Strawberry' 'Cherry' 'Ubas' )

# Pagdaragdag ng bagong elemento sa naka-index na array sa index 2
mga bagay [ 6 ] = 'orange'
# Pagtanggal ng elemento sa index 2 mula sa naka-index na array
hindi nakatakda mga bagay [ 2 ]

# Pagpi-print ng na-update na array
echo ' ${item[@]} '

Sa script, ang isang naka-index na array na 'mga item' ay tinukoy na may limang paunang elemento. Upang magdagdag ng bagong elemento, ang halaga ay itinalaga lamang sa nais na index gamit ang syntax array[index]=value. Sa script na ito, idinaragdag ang “orange” sa index 6 ng array. Upang tanggalin ang isang elemento, ginagamit namin ang hindi nakatakdang utos na sinusundan ng index ng elementong gusto naming alisin. Sa kasong ito, ang elemento sa index 2 ('Strawberry') ay tinanggal. Pagkatapos ay ipi-print ang na-update na array gamit ang syntax na '${array[@]}', na nagpapalawak sa buong array.

Konklusyon

Ang mga naka-index na array ay isang madaling gamiting istraktura ng bash na nagbibigay-daan sa iyong mag-imbak at magmanipula ng maramihang mga halaga gamit ang isang variable. Sa pamamagitan ng pag-unawa sa syntax at paggamit ng mga naka-index na array, makakasulat ka ng mas mahusay at epektibong mga script ng bash.