Android

Pagdating ng Bash

Shell Scripting Tutorial for Beginners 14 - Array variables

Shell Scripting Tutorial for Beginners 14 - Array variables

Talaan ng mga Nilalaman:

Anonim

Ang mga arrow ay isa sa mga pinaka ginagamit at pangunahing istruktura ng data. Maaari mong isipin ang isang array ay isang variable na maaaring mag-imbak ng maraming mga variable sa loob nito., tatakpan namin ang mga darating na Bash, at ipaliwanag kung paano gamitin ang mga ito sa iyong mga script ng Bash.

Mga Bash Arrays

Sinusuportahan ng Bash ang isang-dimensional na naka-index na naka-index at mga uri ng mga nauugnay na mga uri. Ang mga numerong arrays ay isinangguni gamit ang mga integer, at ang pakikipag-ugnay ay isinangguni gamit ang mga string.

Ang mga naka-index na numero ay maaaring ma-access mula sa dulo gamit ang mga negatibong indeks, ang indeks ng -1 sanggunian ang huling elemento. Ang mga indeks ay hindi kinakailangang magkalat.

Hindi tulad ng karamihan sa mga wika ng programming, ang mga elemento ng array ng Bash ay hindi kailangang maging pareho ng uri ng data. Maaari kang lumikha ng isang array na naglalaman ng parehong mga string at numero.

Hindi suportado ng Bash ang mga multidimensional na mga arrays, at hindi ka maaaring magkaroon ng mga elemento ng array na darating din.

Walang limitasyon sa maximum na bilang ng mga elemento na maaaring maiimbak sa isang array.

Paglikha ng Mga Bash Arrays

Ang mga darating sa Bash ay maaaring masimulan sa iba't ibang paraan.

Paglikha ng mga naka-index na mga pag-index

Ang mga variable ng bash ay hindi tinadtad, ang anumang variable ay maaaring magamit bilang isang index na naka-index nang hindi ito ipinahayag.

Upang malinaw na magpahayag ng isang array, gamitin ang deklaradong builtin:

declare -a array_name

Ang isang paraan upang lumikha ng isang naka-index na array ay sa pamamagitan ng paggamit ng sumusunod na form:

array_name=value_1 array_name=value_2 array_name=value_n

Kung saan ang index_* ay isang positibong integer.

Ang isa pang paraan upang lumikha ng isang bilang ng array ay upang tukuyin ang listahan ng mga elemento sa loob ng mga panaklong, na pinaghiwalay ng walang laman na puwang:

array_name=(element_1 element_2 element_N)

Kapag ang array ay nilikha gamit ang form sa itaas, ang pag-index ay nagsisimula sa zero ibig sabihin, ang unang elemento ay may isang index ng 0 .

Paglikha ng mga pag-uugnay ng samahan

Hindi tulad ng mga naka-index na ayon sa numero, dapat na ideklara ang mga kaakibat na arrays bago nila magamit.

Upang maipahayag ang isang kaakibat na hanay gamitin ang declare builtin na may pagpipilian na -A (malalaking titik):

declare -A array_name

Ang mga kaugnay na arrays ay maaaring malikha gamit ang sumusunod na form:

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

Kung saan ang index_* maaaring maging anumang string.

Maaari ka ring lumikha ng isang pangkomunikasyon na ginagamit gamit ang form sa ibaba:

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

Mga Operasyong Array

Bash arrays syntax ay maaaring magmukhang isang maliit na kakaiba sa una, ngunit ito ay magkakaroon ng higit pang kahulugan sa sandaling basahin mo ang artikulong ito.

Mga Sangkap ng Sanggunian

Upang tukuyin ang isang solong elemento, kailangan mong malaman ang elemento ng index.

Anumang elemento ay maaaring mai-refer gamit ang sumusunod na syntax:

${array_name} Ang syntax para sa pag-access ng isang elemento ng array ay katulad ng syntax ng karamihan sa mga wika sa programming. Kinakailangan ang mga kulot na ${} upang maiwasan ang mga nagpapalawak ng filename ng mga operator ng pagpapalawak.

I-print natin ang elemento na may index ng 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

Ang pagkakaiba lamang sa pagitan ng @ at * ay kapag ang form na ${my_array} ay napapalibutan ng dobleng quote. Sa kasong ito, * lumalawak sa isang solong salita kung saan ang mga elemento ng array ay pinaghihiwalay ng espasyo. @ nagpapalawak ng bawat elemento ng array sa isang hiwalay na salita. Ito ay lalong mahalaga kapag ginagamit ang form upang hindi marunong magbasa sa pamamagitan ng mga elemento ng array.

Upang i-print ang mga susi ng array idagdag ang ! operator bago ang pangalan ng array:

${!array_name}

Narito ang isang halimbawa:

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

0 1 2 3

Haba ng Array

Upang makuha ang haba ng isang array, gamitin ang sumusunod na form:

${#array_name} Ang syntax ay pareho tulad ng kapag tinutukoy ang lahat ng mga elemento ng pagdaragdag ng # character bago ang pangalan ng array.

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

4

Loop sa pamamagitan ng array

Ang pinaka-karaniwang paraan upang umulit sa bawat item sa isang array ay sa pamamagitan ng paggamit ng para sa loop:

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

Ang code sa itaas ay magpapagaan sa hanay at mag-print ng bawat elemento sa isang bagong linya:

Hydrogen Helium Lithium Beryllium

Narito ang isang halimbawa kung paano i-print ang lahat ng mga susi at halaga:

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

Ang isa pang paraan upang mag-loop sa pamamagitan ng isang array ay upang makuha ang haba ng array at gamitin ang C style loop:

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

Magdagdag ng isang bagong elemento

Upang magdagdag ng isang bagong elemento sa isang bash array at tukuyin ang index na gamitin ang sumusunod na form:

my_array="New Element"

Narito ang isang halimbawa:

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

Ang isa pang paraan ng pagdaragdag ng isang bagong elemento sa isang array nang hindi tinukoy ang index ay sa pamamagitan ng paggamit ng += operator. Maaari kang magdagdag ng isa o maraming elemento:

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

Tanggalin ang isang elemento

Upang matanggal ang isang solong elemento, kailangan mong malaman ang elemento ng index. Ang isang elemento ay maaaring alisin gamit ang di- unset utos:

unset my_array

Tingnan natin ang isang halimbawa:

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

Hydrogen Helium Beryllium

Konklusyon

Ipinaliwanag namin kung paano lumikha ng mga naka-index na numero at pag-uugnay ng mga kaugnay. Ipinakita rin namin kung paano umulit sa pamamagitan ng mga arrays, kalkulahin ang haba ng array, at idagdag at alisin ang mga elemento.

terminal ng bash