Android

Bash tömbök

İbrahim Tatlıses - Tombul Tombul (Official Audio)

İbrahim Tatlıses - Tombul Tombul (Official Audio)

Tartalomjegyzék:

Anonim

A tömbök a leggyakrabban használt és alapvető adatszerkezetek. Gondolhat arra, hogy egy tömb olyan változó, amely több változót tárolhat benne., lefedi a Bash-tömböket, és elmagyarázza, hogyan kell ezeket használni a Bash-szkriptekben.

Bash tömbök

A Bash támogatja az egydimenziós numerikusan indexált és asszociatív tömbtípusokat. A numerikus tömbre egész számokkal hivatkozunk, az asszociatívra pedig húrokkal hivatkozunk.

A numerikusan indexált tömbök a végétől negatív indexekkel érhetők el, a -1 index az utolsó elemre utal. Az indexeknek nem kell egymással szomszédosnak lenniük.

A legtöbb programozási nyelvvel ellentétben a Bash tömb elemeknek nem kell ugyanannak az adattípusnak lenniük. Hozzon létre egy tömböt, amely mind sztringeket, mind számokat tartalmaz.

A Bash nem támogatja a többdimenziós tömböket, és nem rendelkezhetnek tömb elemekkel, amelyek szintén tömbök.

A tömbben tárolható elemek maximális számára nincs korlátozás.

Bash-tömbök létrehozása

A Bash-tömbök különféleképpen inicializálhatók.

Numerikusan indexált tömbök létrehozása

A bash változó nem betűzett, bármely változó indexelhető tömbként használható, anélkül, hogy azt deklarálná.

Egy tömb kifejezett deklarálásához használja a deklarációs épületet:

declare -a array_name

Az indexelt tömb létrehozásának egyik módja a következő űrlap használata:

array_name=value_1 array_name=value_2 array_name=value_n

Ahol az index_* pozitív egész szám.

A numerikus tömb létrehozásának másik módja a zárójelben lévő elemek listájának megadása, üres térrel elválasztva:

array_name=(element_1 element_2 element_N)

Amikor a tömböt a fenti űrlap segítségével hozzák létre, az indexelés nullán kezdődik, azaz az első elem indexe 0 .

Asszociatív tömbök létrehozása

A numerikusan indexelt ellentétben az asszociatív tömböket felhasználásuk előtt be kell jelenteni.

Asszociatív tömb declare használja a declare deklarációt az -A (nagybetűs) opcióval:

declare -A array_name

Asszociatív tömbök a következő űrlap segítségével hozhatók létre:

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

Ahol az index_* lehet bármilyen karakterlánc.

Az alábbi űrlap segítségével asszociatív tömböt is létrehozhat:

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

Tömbműveletek

A Bash-tömbök szintaxisa eleinte kissé furcsának tűnhet, ám ennek a cikknek az elolvasása után még értelmesebb lesz.

Referencia elemek

Egy elem hivatkozásához meg kell ismernie az elemindexet.

Bármely elemre hivatkozhatunk a következő szintaxissal:

${array_name} A tömb elem eléréséhez szükséges szintaxis hasonló a legtöbb programozási nyelv szintaxisához. A ${} göndör kapcsok szükségesek a shell fájlnévkiterjesztő operátorának elkerüléséhez.

Az elemet indexeljük 1 rel:

## 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

Az egyetlen különbség a @ és a * az, ha a ${my_array} űrlapot dupla idézőjelek veszik körül. Ebben az esetben a * kiterjeszti egyetlen szót, ahol a tömb elemeit elválasztják a szóköz. @ kibővíti az egyes tömb elemeket külön szóval. Ez különösen akkor fontos, ha az űrlapot tömbelemeken keresztül írástudatlansá teszik.

A tömb gombjának kinyomtatásához adja hozzá a ! operátor a tömb neve előtt:

${!array_name}

Íme egy példa:

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

0 1 2 3

Tömb hossza

A tömb hosszának meghatározásához használja a következő űrlapot:

${#array_name} A szintaxis megegyezik az összes elem hivatkozásakor a # karakter hozzáadásával a tömb neve előtt.

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

4

Húzza át a tömböt

A tömb egyes elemeinek iterálásának leggyakoribb módja a for hurok használata:

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

A fenti kód megismétlődik a tömbön, és minden elemet új sorba nyomtat:

Hydrogen Helium Lithium Beryllium

Íme egy példa az összes gomb és érték kinyomtatására:

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

Egy másik módszer a tömbön keresztüli hurkolásra: a tömb hosszának megszerzése és a C style hurok használata:

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

Adjon hozzá új elemet

Új elem hozzáadásához a bash tömbhöz és az index megadásához használja a következő űrlapot:

my_array="New Element"

Íme egy példa:

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

Egy új elem egy új elem hozzáadásához a tömbhöz az index meghatározása nélkül a += operátor használatával. Felvehet egy vagy több elemet:

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

Töröljön egy elemet

Egy elem törléséhez meg kell ismernie az elemindexet. Az elem eltávolítható az unset paranccsal:

unset my_array

Lássunk egy példát:

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

Hydrogen Helium Beryllium

Következtetés

Megmagyaráztuk, hogyan lehet numerikusan indexelt és asszociatív tömböket létrehozni. Megmutattuk azt is, hogyan kell itereerálni a tömbökön, kiszámítani a tömb hosszát, hozzáadni és eltávolítani az elemeket.

bash terminál