Az indextömbök használata a Bashban

Az Indextombok Hasznalata A Bashban



A Bash támogatja az indexelt tömböket, amelyek lényegében az indexszámuk használatával elérhető elemek listái. Az indexelt tömbök különösen hasznosak, ha sok kapcsolódó értéket szeretne tárolni és kezelni. Olvassa el ezt a cikket az indextömbök használatának megismeréséhez.

Mik azok az indextömbök

Az indexelt tömbök a bash elemeinek gyűjteménye, amelyek index vagy kulcs segítségével érhetők el. Ezek a tömbök használhatók az adatok meghatározott sorrendben történő tárolására és lekérésére, ami megkönnyíti a nagy mennyiségű adat kezelését. Az indexelt tömb bash-ban való deklarálásának szintaxisa a következő:

< tömb_neve > = ( elem1 elem2 elem3 ... )

Itt a tömb_neve a tömb neve, az elem1, elem2, elem3 stb. pedig a tömbben tárolandó értékek. Az értékek szóközzel vannak elválasztva, és vegye figyelembe, hogy a deklarációs paranccsal is létrehozhat tömböt.







Az indexelt tömbök használata a Bash-ban

A bash-ban indextömb létrehozásához egyszerűen deklarálnia kell egy változót, és hozzá kell rendelnie zárójelben lévő és szóközzel elválasztott értékeket. Íme néhány példa, amely bemutatja, hogyan kell indexelt tömböket használni a bash-ban:



Lista átrendezése a Bashban

Ha van egy listája a tételekről egy bizonyos sorrendben, és más módon szeretné átrendezni őket. Egy indextömb segítségével új sorrendet hozhat létre a tételekhez, az alábbiak szerint:



#!/bin/bash
tételeket = ( 'Mangó' 'Ananász' 'Eper' 'Cseresznye' 'Szőlő' )
rendelés = ( 4 2 0 3 1 )
számára én ban ben ' ${rendelés[@]} '
csináld
visszhang ${items[$i]}
Kész

Ebben a példában létrehozunk egy öt elemű elemek nevű tömböt. Létrehozunk egy order nevű indextömböt is, amely új sorrendet ad meg az elemekhez. Ezután átpörgetjük a rendelési tömböt, és az egyes értékeket indexként használjuk, hogy lekérjük a megfelelő elemet a tételek tömbből, és kinyomtatjuk.





Lista szűrése Bashban

Ha van egy tétellistája, és bizonyos elemeket ki szeretne szűrni egy feltétel alapján. Egy indextömb segítségével nyomon követheti a feltételnek megfelelő elemek indexeit, az alábbiak szerint:



#!/bin/bash
tételeket = ( 'Mangó' 'Ananász' 'Eper' 'Cseresznye' 'Szőlő' )
indexek = ( )

számára én ban ben ' ${!elem[@]} '
csináld
ha [ [ ${items[$i]} == * 'r' * ] ]
akkor
indexek+= ( $i )
lenni
Kész

számára én ban ben ' ${index[@]} '
csináld
visszhang ${items[$i]}
Kész

Ebben a példában létrehozunk egy öt elemű elemek nevű tömböt. Létrehozunk egy üres indextömböt is, amelyet indexeknek nevezünk. Ezután végigpörgetjük az elemek tömbjét, és ellenőrizzük, hogy minden elem tartalmazza-e az „r” betűt. Ha igen, akkor az indexét hozzáadjuk az indexek tömbhöz. Végül végigpörgetjük az indexek tömbjét, és minden egyes értéket indexként használunk, hogy lekérjük a megfelelő elemet az elemek tömbből, és kinyomtassuk.

Előfordulások számlálása Bashban

Ha van egy listája az elemekről, és meg szeretné számolni az egyes tételek előfordulásának számát, használhat indextömböt a számok nyomon követésére, és itt van egy példa a demonstrációhoz:

#!/bin/bash
tételeket = ( 'Mangó' 'Ananász' 'Eper' 'Cseresznye' 'Szőlő' )
számít = ( )

számára én ban ben ' ${!elem[@]} '
csináld
ha [ [ ! ' ${counts[@]} ' =~ ' ${items[$i]} ' ] ]
akkor
számít+= ( ' ${items[$i]} 1' )
más
index =$ ( visszhang ' ${counts[@]} ' | tr '' '\n' | markolat -n '^ ${items[$i]} ' | val vel )
számol =$ ( visszhang ' ${counts[$index-1]} ' | vágott -d '' -f2 )
számít [ $index - 1 ] = ' ${items[$i]} $((szám+1) )'
lenni
Kész

számára számol ban ben ' ${counts[@]} '
csináld
visszhang $count
Kész

Először inicializál egy „elemek” nevű tömböt karakterláncok listájával. Ezután deklarál egy üres tömböt, amelyet „counts”-nak neveznek. Egy for ciklus jön létre az iterációhoz az „elemek” tömb minden eleméhez, és minden egyes elemnél ellenőrzi, hogy már létezik-e a „counts” tömbben.

Ha nem létezik, akkor hozzáadja az elemet és az 1-es számot a „counts” tömbhöz. Ha létezik, akkor növeli az elem számát a „counts” tömbben. Végül az egyes elemek és a hozzájuk tartozó számok kinyomtatásához egy másik for ciklust használunk. Ennek a kódnak a kimenete kiírja az „elemek” tömb egyes elemeinek számát, a duplikátumokat külön-külön számolva.

Lista frissítése a Bashban

Ha van egy elemlistája, és elemeket szeretne hozzáadni vagy törölni belőle, használhat indextömböt, és itt van egy példa a demonstrációhoz:

#!/bin/bash
tételeket = ( 'Mangó' 'Ananász' 'Eper' 'Cseresznye' 'Szőlő' )

# Új elem hozzáadása az indexelt tömbhöz a 2. indexnél
tételeket [ 6 ] = 'narancs'
# A 2. indexű elem törlése az indexelt tömbből
nincs beállítva tételeket [ 2 ]

# A frissített tömb nyomtatása
visszhang ' ${elem[@]} '

A szkriptben egy indexelt tömb „elemek” öt kezdeti elemből állnak. Új elem hozzáadásához egyszerűen hozzá kell rendelni az értéket a kívánt indexhez a szintaktikai tömb[index]=érték használatával. Ebben a szkriptben a „narancs” a tömb 6. indexéhez kerül hozzáadásra. Egy elem törléséhez használjuk az unset parancsot, majd az eltávolítani kívánt elem indexét. Ebben az esetben a 2. indexű elem („Eper”) törlődik. A frissített tömb ezután a „${array[@]}” szintaxis használatával kerül kinyomtatásra, amely kibontja a teljes tömböt.

Következtetés

Az indexelt tömbök a bash praktikus szerkezete, amely lehetővé teszi több érték tárolását és kezelését egyetlen változó használatával. Az indexelt tömbök szintaxisának és használatának megértésével hatékonyabb és eredményesebb bash szkripteket írhat.