Android

Bash-taulukot

Sahrami Flash mob 30.03.2015

Sahrami Flash mob 30.03.2015

Sisällysluettelo:

Anonim

Taulukot ovat yksi käytetyimmistä ja perusteellisimmista tietorakenteista. Voit ajatella, että taulukko on muuttuja, joka voi tallentaa useita muuttujia siihen., peitimme Bash-taulukot ja selitämme kuinka niitä käytetään Bash-skripteissäsi.

Bash-ryhmät

Bash tukee yksiulotteisia numeerisesti indeksoituja ja assosiatiivisia taulukotyyppejä. Numeerisiin taulukkoihin viitataan kokonaislukuja käyttämällä, ja assosiatiivisiin viitataan merkkijonoja käyttämällä.

Numeerisesti indeksoituihin ryhmiin voidaan päästä lopusta negatiivisia indeksejä käyttämällä, indeksi -1 viittaa viimeiseen elementtiin. Indeksien ei tarvitse olla vierekkäisiä.

Toisin kuin useimmat ohjelmointikielet, Bash-taulukkoelementtien ei tarvitse olla samantyyppisiä. Voit luoda taulukon, joka sisältää sekä merkkijonot että numerot.

Bash ei tue moniulotteisia taulukkoja, eikä sinulla voi olla taulukon elementtejä, jotka ovat myös taulukkoja.

Matriisiin tallennettavien elementtien enimmäismäärälle ei ole mitään rajoituksia.

Bash-taulukkojen luominen

Bash-ryhmät voidaan alustaa eri tavoin.

Numeerisesti indeksoitujen taulukkojen luominen

Bash-muuttujat ovat tyyppimättömiä, mitä tahansa muuttujaa voidaan käyttää indeksoituna taulukkona ilmoittamatta sitä.

Voit ilmoittaa taulukon nimenomaisesti ilmoittamalla rakennuksen:

declare -a array_name

Yksi tapa luoda indeksoitu taulukko on käyttää seuraavaa muotoa:

array_name=value_1 array_name=value_2 array_name=value_n

Missä index_* on positiivinen kokonaisluku.

Toinen tapa luoda numeerinen taulukko on määrittää sulkeissa olevien elementtien luettelo erotettuna tyhjällä tilalla:

array_name=(element_1 element_2 element_N)

Kun taulukko luodaan käyttämällä yllä olevaa lomaketta, indeksointi alkaa nollasta, ts. Ensimmäisten elementtien indeksi on 0 .

Assosiatiivisten taulukkojen luominen

Toisin kuin numeerisesti indeksoituna, assosiatiiviset taulukot on ilmoitettava ennen niiden käyttöä.

Assosiatiivisen taulukon declare käytä deklare builtin -A (iso kirjain) -vaihtoehdolla:

declare -A array_name

Assosiatiiviset taulukot voidaan luoda seuraavalla lomakkeella:

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

Missä index_* voi olla mikä tahansa merkkijono.

Voit myös luoda assosiatiivisen taulukon alla olevan lomakkeen avulla:

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

Ryhmäoperaatiot

Bash-taulukkojen syntaksi saattaa aluksi näyttää hieman omituiselta, mutta se on enemmän järkeä, kun luet tämän artikkelin.

Viite-elementit

Yksittäiseen elementtiin viittaamiseksi sinun on tiedettävä elementtihakemisto.

Mihin tahansa elementtiin voidaan viitata seuraavan syntaksin avulla:

${array_name} Taulukkoelementin käyttämistä koskeva syntaksi on samanlainen kuin useimpien ohjelmointikielten syntaksi. Kiharaketjut ${} vaaditaan, jotta vältetään kuoren tiedostonimen laajennusoperaattorit.

Tulostetaan elementti, jonka indeksi on 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

Ainoa ero @ ja * on, kun lomaketta ${my_array} ympäröi kaksoislainaus. Tässä tapauksessa * laajenee yhdeksi sanaksi, jossa taulukkoelementit erotetaan välilyönnillä. @ laajentaa jokaisen taulukkoelementin erilliseksi sanaksi. Tämä on erityisen tärkeää käytettäessä lomaketta lukutaidottomiksi ryhmäelementtien kautta.

Lisää tulostamalla taulukon näppäimet ! operaattori ennen taulukon nimeä:

${!array_name}

Tässä on esimerkki:

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

0 1 2 3

Matriisin pituus

Saadaksesi taulukon pituuden, käytä seuraavaa lomaketta:

${#array_name} Syntaksi on sama kuin viitaten kaikkiin elementteihin, joissa on lisätty # merkki ennen taulukon nimeä.

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

4

Silmukka ryhmän läpi

Yleisin tapa iteroida jokaisen taulukon alkion kohdalla on for for -silmukka:

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

Yllä oleva koodi iteroi taulukon yli ja tulostaa jokaisen elementin uudelle riville:

Hydrogen Helium Lithium Beryllium

Tässä on esimerkki kaikkien näppäinten ja arvojen tulostamisesta:

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

Toinen tapa silmukoida taulukon läpi on saada taulukon pituus ja käyttää C style :

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

Lisää uusi elementti

Lisää uusi elementti bash-taulukkoon ja määritä sen hakemisto seuraavalla lomakkeella:

my_array="New Element"

Tässä on esimerkki:

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

Toinen tapa lisätä uusi elementti taulukkoon määrittelemättä indeksiä on käyttämällä += operaattoria. Voit lisätä yhden tai useita elementtejä:

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

Poista elementti

Jos haluat poistaa yhden elementin, sinun on tiedettävä elementtihakemisto. Elementti voidaan poistaa käyttämällä unset komentoa:

unset my_array

Katsotaan esimerkki:

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

Hydrogen Helium Beryllium

johtopäätös

Olemme selittäneet, kuinka luodaan numeerisesti indeksoituja ja assosiatiivisia taulukkoja. Olemme myös osoittaneet, kuinka iteroida ryhmien läpi, laskea taulukon pituus sekä lisätä ja poistaa elementtejä.

bash-terminaali