- Határozzon meg egy tömböt index alapján
- Határozzon meg egy tömböt több értékkel
- Határozzon meg egy asszociatív tömböt
- Számolja meg a tömbértékeket
- Olvassa be a tömbértékeket ciklusonként
- Olvassa el a tömb egyedi értékeit
- Illessze be a tömbértékeket
- Olvasson be egy fájl tartalmat a tömbbe
- Kombinálja a tömbértékeket
- Módosítsa a tömbértékeket
- Távolítsa el a tömbértékeket
- Keresse meg és cserélje ki a tömbértékeket
- Használjon tömböt függvényargumentumként
- Állítsa vissza a tömböt a függvényből
- Tedd üressé a tömböt
Határozzon meg egy tömböt index alapján
A tömb deklarálásának módszere a szekvenciális vagy nem szekvenciális numerikus indexek említésével a következő szkriptben látható. Ezt a tömbtípust numerikus tömbnek nevezzük. Itt a „$books” tömb három szekvenciális index meghatározásával, a „$products” tömb pedig négy nem szekvenciális index meghatározásával jön létre. Mindkét tömb összes értéke a „printf” függvény segítségével kerül kinyomtatásra.
#!/bin/bash
#Define array index szekvenciális sorrendben
könyveket [ 0 ] = 'A bash Shell megtanulása'
könyveket [ 1 ] = 'Cybersecurity Ops with bash'
könyveket [ 2 ] = 'Bash Command Line Pro tippek'
visszhang 'Az első tömb összes értéke:'
printf '%s\n' ' ${books[@]} '
#A tömb indexének meghatározása nem szekvenciális sorrendben
Termékek [ 10 ] = 'Toll'
Termékek [ 5 ] = 'Ceruza'
Termékek [ 9 ] = 'Rular'
Termékek [ 4 ] = 'A4 méretű papír'
visszhang
visszhang 'A második tömb összes értéke:'
printf '%s\n' ' ${products[@]} '
Kimenet :
A következő kimenet jelenik meg a szkript végrehajtása után. Mindkét tömb értéke a kimenetben kerül nyomtatásra. Az indexsorrend a nem szekvenciális indexek tömbjének nyomtatáskor is megmarad:
Határozzon meg egy tömböt több értékkel
Egy többértékű numerikus tömb deklarálható a „declare” paranccsal az -a kapcsolóval, vagy a „declare” parancs használata nélkül. A következő szkriptben az első tömb a „declare” paranccsal lesz deklarálva, a második tömb pedig a „declare” parancs használata nélkül jön létre.
#!/bin/bash
#Declare egy numerikus tömböt a 'declare' kulcsszóval
kijelent -a neveket = ( 'Michael' 'Dávid' 'Sándor' 'Tamás' 'Robert' 'Richard' )
#Nyomtassa ki a tömbértékeket
visszhang 'Az első tömb összes értéke:'
printf '%s\n' ' ${names[@]} '
#Declare egy numerikus tömb 'declare' kulcsszó nélkül
könyveket = ( 'Shell Scripting oktatóanyagok' – Bish Bash Bosh! „Tanuld gyorsan Bash-t” )
#Újsor hozzáadása
visszhang
#Nyomtassa ki a tömbértékeket
visszhang 'A második tömb összes értéke:'
printf '%s\n' ' ${books[@]} '
Kimenet :
A következő kimenet jelenik meg a szkript végrehajtása után. Mindkét tömb értékeit itt nyomtatjuk ki:
Határozzon meg egy asszociatív tömböt
A karakterlánc-értéket indexként tartalmazó tömböt asszociatív tömbnek nevezzük. Az -A kapcsolót a Bash „declare” paranccsal együtt használjuk asszociatív Bash tömb létrehozására. A következő szkriptben az első asszociatív tömb az indexek külön említésével, a második tömb pedig az összes kulcs-érték pár megemlítésével kerül deklarálásra a tömbdeklaráció időpontjában.
#!/bin/bash#Az asszociatív tömbváltozó deklarálása érték nélkül
kijelent -A munkavállaló
#Az index meghatározásával külön-külön rendelhet értéket
munkavállaló [ 'azonosító' ] = '78564'
munkavállaló [ 'név' ] = 'Elérhető színészek'
munkavállaló [ 'bejegyzés' ] = 'vezérigazgató'
munkavállaló [ 'fizetés' ] = 300 000
#Nyomtassa ki a tömb két értékét
visszhang 'Munkavállalói azonosító: ${alkalmazott[id]} '
visszhang 'Alkalmazott Neve: ${alkalmazott[név]} '
#Deklaráljon egy asszociatív tömböt értékekkel
kijelent -A tanfolyam = ( [ kód ] = 'CSE-206' [ név ] = 'Objektumorientált programozás' [ hitel_óra ] = 2.0 )
#Újsor hozzáadása
visszhang
#Nyomtassa ki a második tömb két tömbértékét
visszhang 'A tantárgy neve: ${course[name]} '
visszhang 'Hitelóra: ${kurzus[kredit_óra]} '
Kimenet :
A következő kimenet jelenik meg a szkript végrehajtása után. Az asszociatív tömb konkrét értékei a kulcs vagy indexérték megemlítésével kerülnek kinyomtatásra:
Számolja meg a tömbértékeket
A numerikus tömb és az asszociatív tömb összes elemének megszámlálásának módja a következő szkriptben látható:
#!/bin/bash#Numerikus tömb deklarálása
kijelent -a neveket = ( 'Michael' 'Dávid' 'Sándor' 'Tamás' 'Robert' 'Richard' ) ;
visszhang 'A numerikus tömb hossza: ${#names[@]} '
#Asszociatív tömb deklarálása
kijelent -A tanfolyam = ( [ kód ] = 'CSE-206' [ név ] = 'Objektumorientált programozás' [ hitel_óra ] = 2.0 )
visszhang 'Az asszociatív tömb hossza ${#tanfolyam[@]} '
Kimenet :
A következő kimenet jelenik meg a szkript végrehajtása után. A numerikus és asszociatív tömbök tömbhosszát itt nyomtatjuk ki:
Olvassa be a tömbértékeket ciklusonként
A numerikus tömb és az asszociatív tömb összes értékének „for” ciklussal történő kiolvasásának módszere a következő szkriptben látható:
#!/bin/bash#Numerikus tömb deklarálása
kijelent -a könyveket = ( 'Shell Scripting oktatóanyagok' – Bish Bash Bosh! 'Tanuld gyorsan Bash-t' )
#Nyomtassa ki a numerikus tömb értékeket
visszhang 'A numerikus tömb értékei:'
számára ban ben ban ben ' ${books[@]} '
csináld
visszhang ' $in '
Kész
visszhang
#Deklaráljon egy asszociatív tömböt értékekkel
kijelent -A ügyfelek = (
[ id ] = 'H-5623'
[ név ] = 'Úr. Ahnaf'
[ cím ] = '6/A, Dhanmondi, Dhaka.'
[ telefon ] = „+8801975642312” )
#Nyomtassa ki az asszociatív tömbértékeket
visszhang 'Az asszociatív tömbértékek a következők:
számára k ban ben ' ${!clients[@]} '
csináld
visszhang ' $k => ${kliens[$k]} '
Kész
Kimenet :
A következő kimenet jelenik meg a szkript végrehajtása után. Itt a numerikus tömb értékei és az asszociatív tömb kulcs-érték párjai megjelennek a kimenetben:
Olvassa el a tömb adott értéktartományát
Az indexek adott tartományának tömbértékei a következő szkriptben láthatók. A szkriptben egy négy elemből álló numerikus tömb van definiálva. A tömb második indexéből két tömbértéket később nyomtatunk ki.
#!/bin/bash#Numerikus tömb deklarálása
kijelent -a sütemények = ( 'Csokoládétorta' 'Vanília torta' 'Vörös bársony torta' 'eper torta' )
#Nyomtassa ki az adott tömbértékeket
visszhang 'A tömbértékek 2. és 3. eleme:'
printf '%s\n' ' ${sütemények[@]:1:2} '
Kimenet :
A következő kimenet jelenik meg a szkript végrehajtása után. A tömb második és harmadik értéke a „Vanília torta” és a „Vörös bársonytorta”, amelyek a kimenetben jelennek meg:
Illessze be a tömbértékeket
A tömb végére több érték hozzáadásának módja a következő szkriptben látható. A fő tömb, amely a „$books”, három elemet tartalmaz, és két elemet adunk hozzá a „$books” tömb végéhez.
#!/bin/bash#Numerikus tömb deklarálása
kijelent -a könyveket = ( 'Shell Scripting oktatóanyagok' – Bish Bash Bosh! 'Tanuld gyorsan Bash-t' )
#Nyomtassa ki a tömbértékeket beszúrás előtt
visszhang 'Tömbértékek:'
printf '%s\n' ' ${books[@]} '
visszhang
könyveket = ( ' ${books[@]} ' 'Linux Command Line és Shell Scripting Bible' 'Advanced Bash Scripting Guide, Mendel Cooper' )
#Nyomtassa ki a tömbértékeket a beillesztés után
visszhang 'Tömbértékek két érték beillesztése után:'
printf '%s\n' ' ${books[@]} '
Kimenet :
A következő kimenet jelenik meg a szkript végrehajtása után. Az új értékek beszúrása előtti és utáni tömbértékek kinyomtatásra kerülnek a kimenetben:
Olvassa be a fájl tartalmát a tömbbe
A példa szkriptjének teszteléséhez hozzon létre egy „fruits.txt” nevű szövegfájlt a következő tartalommal:
gyümölcsök.txt
MangóJackfruit
Ananász
narancs
Banán
A következő szkriptben egy fájl tartalma egy „$data” nevű tömbben van tárolva. Itt a fájl minden sora a tömb minden elemeként kerül tárolásra. Ezután a tömbértékek kinyomtatásra kerülnek.
#!/bin/bash#Olvasd be a fájlnevet a felhasználótól
olvas -o 'Írja be a fájlnevet:' fájl név
ha [ -f $fájlnév ]
akkor
#Olvasd be a fájl tartalmát egy tömbbe'
adat = ( ` macska ' $fájlnév ' ` )
visszhang 'A fájl tartalma alább látható:'
# Olvassa el a fájlt soronként
számára vonal ban ben ' ${data[@]} '
csináld
visszhang $sor
Kész
lenni
Kimenet :
A következő kimenet jelenik meg a szkript végrehajtása után. A „cat” parancs által megjelenített kimenet és a szkript kimenete hasonló, mivel ugyanazt a fájlt éri el a „cat” parancs és a szkript:
Kombinálja a tömbértékeket
Több tömb értékeinek kombinálásával új tömb jön létre. A következő szkriptben két karakterlánc numerikus tömb van definiálva. Ezután egy új tömb jön létre ezen tömbök értékeinek kombinálásával.
#!/bin/bash#Deklarálja az első tömböt
kijelent -a névlista1 = ( 'Michael' 'Dávid' 'Sándor' 'Tamás' )
visszhang 'Az első tömbértékek a következők:'
printf '%s,' ${nameList1[@]}
visszhang
#Deklarálja a második tömböt
kijelent -a névLista2 = ( 'Robert' 'Richard' )
visszhang 'A második tömbértékek a következők:
printf '%s,' ${nameList2[@]}
visszhang
#Hozzon létre egy új tömböt két tömb kombinálásával
kombinált_tömb = ( ' ${nameList1[@]} ' ' ${nameList2[@]} ' )
visszhang 'A kombinált tömbértékek a következők:
printf '%s,' ${combined_array[@]}
visszhang
Kimenet :
A következő kimenet jelenik meg a szkript végrehajtása után. Itt három tömb értéke jelenik meg a kimenetben. A harmadik tömb tartalmazza az első és a második tömb összes értékét:
Módosítsa a tömbértékeket
Egy vagy több tömbérték frissítésének módja az index megemlítésével a következő szkriptben látható:
#!/bin/bash#Deklarálja az első tömböt
kijelent -a névlista = ( 'Michael' 'Dávid' 'Sándor' 'Tamás' )
visszhang 'Tömbértékek:'
printf '%s,' ${nameList[@]}
visszhang
#Frissítse a tömb 2. értékét
névlista [ 1 ] = 'Robert'
visszhang 'Tömbértékek frissítés után:'
printf '%s,' ${nameList[@]}
visszhang
Kimenet :
A következő kimenet jelenik meg a szkript végrehajtása után. A fő tömb és a frissített tömb értékei a kimenetben jelennek meg:
Távolítsa el a tömbértékeket
Az „unset” parancs az adott elem vagy a tömb összes elemének eltávolítására szolgál. A következő szkriptben a tömb második eleme eltávolításra kerül.
#!/bin/bash#Numerikus tömb deklarálása
kijelent -a könyveket = ( 'Shell Scripting oktatóanyagok' – Bish Bash Bosh! 'Tanuld gyorsan Bash-t' )
#Eltávolítás előtt nyomtassa ki a tömbértékeket
visszhang 'Tömbértékek:'
printf '%s\n' ' ${books[@]} '
visszhang
#Távolítsa el a 2. elemet
nincs beállítva könyveket [ 1 ]
#Az eltávolítás után nyomtassa ki a tömbértékeket
visszhang 'Tömbértékek a 2. érték eltávolítása után:'
printf '%s\n' ' ${books[@]} '
Kimenet :
A következő kimenet jelenik meg a szkript végrehajtása után. A fő tömb értékei és a tömbértékek egy érték eltávolítása után megjelennek a kimenetben:
Keresse meg és cserélje ki a tömbértékeket
A következő szkriptben a tömb adott értéke lecserélődik egy másik értékre, ha a mintában definiált keresési érték megfelel a „$names” tömb bármely értékének.
#!/bin/bash#Deklarálja az első tömböt
kijelent -a neveket = ( 'Michael' 'Dávid' 'Sándor' 'Tamás' )
#Nyomtassa ki az eredeti tömbértékeket
visszhang 'Eredeti tömbértékek:'
printf '%s\n' ' ${names[@]} '
# Generáljon karakterláncot a tömbértékek cseréje után
frissített_tömb = ${names[@]/Alexander/Richard}
#Nyomtassa ki a tömbértékeket a csere után
visszhang 'Tömbértékek csere után:'
printf '%s\n' ' ${updated_array[@]} '
Kimenet :
A következő kimenet jelenik meg a szkript végrehajtása után. A fő tömb értékei és a tömbértékek egy érték cseréje után megjelennek a kimenetben:
Használjon tömböt függvényargumentumként
A következő szkriptben egy tömbváltozó kerül átadásra függvény argumentumként, és a tömb értékeit később nyomtatja ki.
#!/bin/bash#Deklaráljon egy számtömböt
kijelent -a számok = ( 10 6 Négy öt 13 8 )
#Határozzon meg egy függvényt, amely argumentumértéket vesz fel
func ( )
{
#Olvassa el az első érvet
számok = 1 dollár
#Nyomtassa ki a tömbértékeket
visszhang 'Tömbértékek:'
printf '%d\n' ' ${numbers[@]} '
}
#Hívja meg a függvényt argumentumként a tömbbel
func ' ${numbers[@]} '
Kimenet :
A következő kimenet jelenik meg a szkript végrehajtása után:
Tömb visszaadása a függvényből
A következő szkriptben a függvényt négy numerikus argumentummal hívják meg. Egy tömb jön létre az argumentumértékekkel, és ez a tömb visszakerül a függvénytől a hívóhoz.
#!/bin/bash#Határozzon meg egy függvényt, amely négy argumentumot olvas be
func ( )
{
#Olvassa el az argumentumértékeket
számok = ( 1 dollár 2 dollár 3 dollár 4 dollár )
#A tömb visszaadása
visszhang ' ${numbers[@]} '
}
#Hívja meg a függvényt három argumentummal
return_val =$ ( func 78 Négy öt 90 23 )
#Tárolja el a visszatérési értéket egy tömbben
olvas -a az egyiken <<< $return_val
#Nyomtassa ki a visszaadott tömb értékeit
visszhang 'A tömb értékei:'
számára ban ben ban ben ' ${num[@]} '
csináld
visszhang ' $in '
Kész
Kimenet :
A következő kimenet jelenik meg a szkript végrehajtása után:
Tedd üressé a tömböt
A következő szkript bemutatja a tömb üressé tételének módját az „unset” paranccsal. A tömbértékek teljes száma a tömb kiürítése előtt és után kerül kinyomtatásra.
#!/bin/bash#Deklaráljon egy számtömböt
kijelent -a számok = ( 10 6 Négy öt 13 80 )
visszhang 'A tömbértékek száma: ${#számok[@]} '
#Tegye üressé a tömböt
nincs beállítva számok
visszhang 'A tömbértékek száma a tömb kiürítése után: ${#számok[@]} '
Kimenet :
A következő kimenet jelenik meg a szkript végrehajtása után. A tömb elemeinek száma 0 lett a tömb kiürítése után:
Következtetés
Ez az oktatóanyag 15 egyszerű példán keresztül bemutatja a Bash-szkriptben a tömbváltozók deklarálására, elérésére, módosítására és eltávolítására szolgáló különféle módszereket. Reméljük, hogy ez az oktatóanyag segít a Bash felhasználóknak a Bash tömb használatának részletes megismerésében.