Sahrami Flash mob 30.03.2015
Sisällysluettelo:
- Bash-ryhmät
- Bash-taulukkojen luominen
- Numeerisesti indeksoitujen taulukkojen luominen
- Assosiatiivisten taulukkojen luominen
- Ryhmäoperaatiot
- Viite-elementit
- Matriisin pituus
- Silmukka ryhmän läpi
- Lisää uusi elementti
- Poista elementti
- johtopäätös
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}"
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}
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}"
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-terminaaliBash silmukasta
Bash-komentosarjoissa on 3 perussilmukkakonstruktiota silmukalle, silmukalle ja silmukkaan saakka. Tässä opetusohjelmassa käsittelemme silmukoiden perusteet Bashissa sekä katkoksia ja jatkamme lauseita silmukan virtauksen muuttamiseksi.
Bash: liitä tiedostoon
Linuxissa on useita tapoja liittää teksti tiedostoon. Tämä artikkeli selittää joitain niistä.
Kuinka tarkistaa, onko tiedostoa tai hakemistoa olemassa bash-tiedostossa
Usein Shell-komentosarjoja kirjoitettaessa voi joutua tilanteeseen, jossa joudut suorittamaan toimenpiteen sen perusteella, onko tiedosto olemassa vai ei. Bash-sovelluksessa voit käyttää testikomentoa tarkistaaksesi, onko tiedostoa olemassa ja määrittää tiedostotyyppi.