- Defineerige massiiv indeksi järgi
- Määratlege mitme väärtusega massiiv
- Määratlege assotsiatiivne massiiv
- Loendage massiivi väärtused
- Lugege massiivi väärtusi tsükli järgi
- Lugege massiivi konkreetseid väärtusi
- Sisestage massiivi väärtused
- Lugege massiivi faili sisu
- Kombineerige massiivi väärtused
- Muutke massiivi väärtusi
- Eemaldage massiivi väärtused
- Otsige ja asendage massiivi väärtused
- Kasutage funktsiooni argumendina massiivi
- Taasta massiiv funktsioonist
- Tehke massiiv tühjaks
Defineerige massiiv indeksi järgi
Massiivi deklareerimise meetod järjestikuste või mittejärjestikuliste numbriindeksite mainimisega on näidatud järgmises skriptis. Seda tüüpi massiivi nimetatakse numbriliseks massiiviks. Siin luuakse massiiv '$books' kolme järjestikuse indeksi määratlemisega ja massiiv '$products' nelja mittejärjestikuse indeksi määratlemisega. Mõlema massiivi kõik väärtused trükitakse funktsiooni 'printf' abil.
#!/bin/bash
#Määrake massiivi indeks järjestikuses järjekorras
raamatuid [ 0 ] = 'Bash Shelli õppimine'
raamatuid [ 1 ] = 'Küberjulgeoleku operatsioonid bashiga'
raamatuid [ 2 ] = Bash Command Line Pro nõuanded
kaja 'Esimese massiivi kõik väärtused:'
printf '%s\n' ' ${books[@]} '
#Määrake massiivi indeks mittejärjekorras
tooted [ 10 ] = 'Pliiats'
tooted [ 5 ] = 'Pliiats'
tooted [ 9 ] = 'Rular'
tooted [ 4 ] = 'A4 formaadis paber'
kaja
kaja 'Teise massiivi kõik väärtused:'
printf '%s\n' ' ${products[@]} '
Väljund :
Pärast skripti täitmist ilmub järgmine väljund. Mõlema massiivi väärtused trükitakse väljundisse. Indeksi järjekorda säilitatakse trükkimise ajal mittejärjestikuliste indeksite massiivi jaoks:
Määratlege mitme väärtusega massiiv
Mitme väärtusega numbrimassiivi saab deklareerida, kasutades käsku 'declare' koos võtmega -a või ilma käsku 'deklareerimine'. Järgmises skriptis deklareeritakse esimene massiiv käsuga 'deklareerida' ja teine massiiv luuakse ilma käsku 'declare' kasutamata.
#!/bin/bash
#Deklareerige numbriline massiiv märksõnaga 'deklareeri'.
kuulutama -a nimed = ( 'Michael' 'David' 'Aleksander' 'Thomas' 'Robert' 'Richard' )
#Prindi massiivi väärtused
kaja 'Esimese massiivi kõik väärtused:'
printf '%s\n' ' ${names[@]} '
#Deklareerige numbriline massiiv ilma 'deklareeri' märksõnata
raamatuid = ( 'Shelli skriptimise õpetused' 'Bish Bash Bosh!' 'Õpi Bashi kiiresti' )
#Lisa uus rida
kaja
#Prindi massiivi väärtused
kaja 'Teise massiivi kõik väärtused:'
printf '%s\n' ' ${books[@]} '
Väljund :
Pärast skripti täitmist ilmub järgmine väljund. Mõlema massiivi väärtused trükitakse siia:
Määratlege assotsiatiivne massiiv
Massiivi, mis sisaldab stringi väärtust indeksina, nimetatakse assotsiatiivseks massiiviks. Suvandit -A kasutatakse Bashis koos käsuga 'declare', et luua assotsiatiivne Bashi massiiv. Järgmises skriptis deklareeritakse esimene assotsiatiivne massiiv, mainides indekseid eraldi ja teine massiiv, mainides kõiki massiivi deklareerimise ajal olevaid võtme-väärtuse paare.
#!/bin/bash#Assotsiatiivse massiivi muutuja deklareerimine ilma väärtuseta
kuulutama -A töötaja
#Määrake väärtus eraldi, määrates indeksi
töötaja [ 'id' ] = '78564'
töötaja [ 'nimi' ] = 'Näitlejad saadaval'
töötaja [ 'postitus' ] = 'TEGEVDIREKTOR'
töötaja [ 'palk' ] = 300 000
#Prindi kaks massiivi väärtust
kaja 'Töötaja ID: ${töötaja[id]} '
kaja 'Töötaja nimi: ${töötaja[nimi]} '
#Deklareerige väärtustega assotsiatiivne massiiv
kuulutama -A muidugi = ( [ kood ] = 'CSE-206' [ nimi ] = 'Objektorienteeritud programmeerimine' [ krediidi_tund ] = 2.0 )
#Lisa uus rida
kaja
#Trüki teise massiivi kaks massiivi väärtust
kaja 'Kursuse nimi: ${kursus[nimi]} '
kaja 'Krediiditund: ${kursus[krediidi_tund]} '
Väljund :
Pärast skripti täitmist ilmub järgmine väljund. Assotsiatiivse massiivi konkreetsed väärtused trükitakse siia, mainides võtme või indeksi väärtust:
Loendage massiivi väärtused
Arvmassiivi ja assotsiatiivse massiivi koguelementide loendamise meetod on näidatud järgmises skriptis:
#!/bin/bash#Deklareerige numbriline massiiv
kuulutama -a nimed = ( 'Michael' 'David' 'Aleksander' 'Thomas' 'Robert' 'Richard' ) ;
kaja 'Arvmassiivi pikkus on ${#names[@]} '
#Deklareeri assotsiatiivne massiiv
kuulutama -A muidugi = ( [ kood ] = 'CSE-206' [ nimi ] = 'Objektorienteeritud programmeerimine' [ krediidi_tund ] = 2.0 )
kaja 'Assotsiatiivse massiivi pikkus on ${#kursus[@]} '
Väljund :
Pärast skripti täitmist kuvatakse järgmine väljund. Numbri- ja assotsiatiivsete massiivide massiivi pikkus trükitakse siia:
Lugege massiivi väärtusi tsükli järgi
Arvmassiivi ja assotsiatiivse massiivi kõigi väärtuste lugemise meetod 'for' tsükli abil on näidatud järgmises skriptis:
#!/bin/bash#Deklareerige numbriline massiiv
kuulutama -a raamatuid = ( 'Shelli skriptimise õpetused' 'Bish Bash Bosh!' 'Õppige Bashi kiiresti' )
#Prindige numbrilise massiivi väärtused
kaja 'Arvmassiivi väärtused on:'
jaoks sisse sisse ' ${books[@]} '
teha
kaja ' $in '
tehtud
kaja
#Deklareerige väärtustega assotsiatiivne massiiv
kuulutama -A kliendid = (
[ id ] = 'H-5623'
[ nimi ] = 'Härra. Ahnaf'
[ aadress ] = '6/A, Dhanmondi, Dhaka.'
[ telefon ] = '+8801975642312' )
#Prindige assotsiatiivse massiivi väärtused
kaja 'Assotsiatiivsed massiivi väärtused on:'
jaoks k sisse ' ${!kliendid[@]} '
teha
kaja ' $k => ${kliendid[$k]} '
tehtud
Väljund :
Pärast skripti täitmist ilmub järgmine väljund. Siin trükitakse väljundisse numbrilise massiivi väärtused ja assotsiatiivse massiivi võtme-väärtuste paarid:
Lugege massiivi konkreetset väärtusvahemikku
Indekside konkreetse vahemiku massiivi väärtused on näidatud järgmises skriptis. Skriptis on määratletud neljast elemendist koosnev numbriline massiiv. Kaks massiivi väärtust massiivi teisest indeksist trükitakse hiljem.
#!/bin/bash#Deklareerige numbriline massiiv
kuulutama -a koogid = ( 'Šokolaadikook' 'Vanilje kook' 'Red Velvet Cake' 'maasikakook' )
#Prindige konkreetsed massiivi väärtused
kaja 'Massiivi väärtuste 2. ja 3. element on:'
printf '%s\n' ' ${koogid[@]:1:2} '
Väljund :
Pärast skripti täitmist ilmub järgmine väljund. Massiivi teine ja kolmas väärtus on 'Vanilli Cake' ja 'Red Velvet Cake', mis trükitakse väljundisse:
Sisestage massiivi väärtused
Mitme väärtuse lisamise meetod massiivi lõppu on näidatud järgmises skriptis. Peamine massiiv, mis on “$books”, sisaldab kolme elementi ja kaks elementi lisatakse massiivi “$books” lõppu.
#!/bin/bash#Deklareerige numbriline massiiv
kuulutama -a raamatuid = ( 'Shelli skriptimise õpetused' 'Bish Bash Bosh!' 'Õppige Bashi kiiresti' )
#Prindi massiivi väärtused enne sisestamist
kaja 'Massiivi väärtused:'
printf '%s\n' ' ${books[@]} '
kaja
raamatuid = ( ' ${books[@]} ' 'Linuxi käsurida ja Shelli skriptipiibel' Mendel Cooperi täiustatud Bashi skriptimise juhend )
#Prindi massiivi väärtused pärast sisestamist
kaja 'Massiivi väärtused pärast kahe väärtuse sisestamist:'
printf '%s\n' ' ${books[@]} '
Väljund :
Pärast skripti täitmist ilmub järgmine väljund. Massiivi väärtused enne ja pärast uute väärtuste lisamist trükitakse väljundisse:
Lugege faili sisu massiivi
Selle näite skripti testimiseks looge järgmise sisuga tekstifail nimega 'fruits.txt'.
puuviljad.txt
MangoJackfruit
Ananass
Oranž
Banaan
Järgmises skriptis salvestatakse faili sisu massiivi nimega “$data”. Siin salvestatakse faili iga rida massiivi iga elemendina. Järgmisena prinditakse massiivi väärtused.
#!/bin/bash#Lugege kasutajalt failinimi
lugeda -lk 'Sisesta failinimi:' faili nimi
kui [ -f $ failinimi ]
siis
#Lugege faili sisu massiivi'
andmeid = ( ` kass ' $ failinimi ' ` )
kaja 'Faili sisu on toodud allpool:'
#Lugege faili rida rea haaval
jaoks rida sisse ' ${data[@]} '
teha
kaja $rida
tehtud
olla
Väljund :
Pärast skripti täitmist ilmub järgmine väljund. Käsu 'cat' kuvatav väljund ja skripti väljund on sarnased, kuna samale failile pääseb juurde käsk 'cat' ja skript:
Kombineerige massiivi väärtused
Mitme massiivi väärtuste kombineerimisel luuakse uus massiiv. Järgmises skriptis on määratletud kaks stringide arvulist massiivi. Seejärel luuakse nende massiivide väärtuste kombineerimisel uus massiiv.
#!/bin/bash#Deklareerige esimene massiiv
kuulutama -a nimeloend1 = ( 'Michael' 'David' 'Aleksander' 'Thomas' )
kaja 'Esimesed massiivi väärtused on:'
printf '%s,' ${nameList1[@]}
kaja
#Deklareerige teine massiiv
kuulutama -a nimeloend2 = ( 'Robert' 'Richard' )
kaja 'Teised massiivi väärtused on:'
printf '%s,' ${nameList2[@]}
kaja
#Loo uus massiiv, ühendades kaks massiivi
kombineeritud_massiiv = ( ' ${nameList1[@]} ' ' ${nameList2[@]} ' )
kaja 'Kombineeritud massiivi väärtused on:'
printf '%s,' ${combined_array[@]}
kaja
Väljund :
Pärast skripti täitmist ilmub järgmine väljund. Siin trükitakse väljundisse kolme massiivi väärtused. Kolmas massiiv sisaldab kõiki esimese ja teise massiivi väärtusi:
Muutke massiivi väärtusi
Ühe või mitme massiivi väärtuse värskendamise meetod indeksi mainimise kaudu on näidatud järgmises skriptis:
#!/bin/bash#Deklareerige esimene massiiv
kuulutama -a nimekiri = ( 'Michael' 'David' 'Aleksander' 'Thomas' )
kaja 'Massiivi väärtused:'
printf '%s,' ${nameList[@]}
kaja
#Uuendage massiivi 2. väärtust
nimekiri [ 1 ] = 'Robert'
kaja 'Massiivi väärtused pärast värskendamist:'
printf '%s,' ${nameList[@]}
kaja
Väljund :
Pärast skripti täitmist ilmub järgmine väljund. Põhimassiivi ja värskendatud massiivi väärtused trükitakse väljundisse:
Eemaldage massiivi väärtused
'Unset' käsku kasutatakse konkreetse elemendi või kõigi massiivi elementide eemaldamiseks. Järgmises skriptis eemaldatakse massiivi teine element.
#!/bin/bash#Deklareerige numbriline massiiv
kuulutama -a raamatuid = ( 'Shelli skriptimise õpetused' 'Bish Bash Bosh!' 'Õppige Bashi kiiresti' )
#Prindi massiivi väärtused enne eemaldamist
kaja 'Massiivi väärtused:'
printf '%s\n' ' ${books[@]} '
kaja
#Eemaldage 2. element
määramata raamatuid [ 1 ]
#Prindi massiivi väärtused pärast eemaldamist
kaja 'Massiivi väärtused pärast 2. väärtuse eemaldamist:'
printf '%s\n' ' ${books[@]} '
Väljund :
Pärast skripti täitmist ilmub järgmine väljund. Põhimassiivi väärtused ja massiivi väärtused pärast ühe väärtuse eemaldamist trükitakse väljundisse:
Otsige ja asendage massiivi väärtused
Järgmises skriptis asendatakse massiivi konkreetne väärtus teise väärtusega, kui mustris määratletud otsinguväärtus on sobitatud massiivi '$names' mis tahes väärtusega.
#!/bin/bash#Deklareerige esimene massiiv
kuulutama -a nimed = ( 'Michael' 'David' 'Aleksander' 'Thomas' )
#Prindi algsed massiivi väärtused
kaja 'Algsed massiivi väärtused:'
printf '%s\n' ' ${names[@]} '
#Loo string pärast massiivi väärtuste asendamist
uuendatud_massiiv = ${names[@]/Alexander/Richard}
#Prindi massiivi väärtused pärast asendamist
kaja 'Massiivi väärtused pärast asendamist:'
printf '%s\n' ' ${updated_array[@]} '
Väljund :
Pärast skripti täitmist ilmub järgmine väljund. Põhimassiivi väärtused ja massiivi väärtused pärast väärtuse asendamist trükitakse väljundisse:
Kasutage funktsiooni argumendina massiivi
Järgmises skriptis edastatakse funktsiooni argumendina massiivi muutuja ja selle massiivi väärtused trükitakse hiljem.
#!/bin/bash#Deklareerige arvude massiiv
kuulutama -a numbrid = ( 10 6 Neli, viis 13 8 )
#Defineerige funktsioon, mis võtab argumendi väärtuse
func ( )
{
#Lugege esimest argumenti
numbrid = 1 dollar
#Prindi massiivi väärtused
kaja 'Massiivi väärtused:'
printf '%d\n' ' ${numbers[@]} '
}
#Kutsuge funktsioon välja massiivi argumendina
func ' ${numbers[@]} '
Väljund :
Pärast skripti käivitamist kuvatakse järgmine väljund:
Funktsioonist massiivi tagastamine
Järgmises skriptis kutsutakse funktsiooni välja nelja numbrilise argumendiga. Argumendi väärtustega luuakse massiiv ja see massiiv tagastatakse funktsioonilt helistajale.
#!/bin/bash#Defineerige funktsioon, mis loeb nelja argumendi väärtust
func ( )
{
#Lugege argumendi väärtusi
numbrid = ( 1 dollar 2 dollarit 3 dollarit 4 dollarit )
#Tagasta massiiv
kaja ' ${numbers[@]} '
}
#Kutsuge funktsiooni kolme argumendiga
return_val =$ ( func 78 Neli, viis 90 23 )
#Salvestage tagastatav väärtus massiivi
lugeda -a ühel <<< $tagasi_valik
#Prindige tagastatud massiivi väärtused
kaja 'Massiivi väärtused on:'
jaoks sisse sisse ' ${num[@]} '
teha
kaja ' $in '
tehtud
Väljund :
Pärast skripti käivitamist kuvatakse järgmine väljund:
Tehke massiiv tühjaks
Järgmine skript näitab massiivi tühjaks muutmise meetodit käsuga 'unset'. Massiivi väärtuste koguarv trükitakse enne ja pärast massiivi tühjaks tegemist.
#!/bin/bash#Deklareerige arvude massiiv
kuulutama -a numbrid = ( 10 6 Neli, viis 13 80 )
kaja 'Massiivi väärtuste arvud: ${#numbers[@]} '
#Tee massiiv tühjaks
määramata numbrid
kaja 'Massiivi väärtuste arv pärast massiivi tühjaks tegemist: ${#numbers[@]} '
Väljund :
Pärast skripti täitmist ilmub järgmine väljund. Massiivi elementide arv sai pärast massiivi tühjaks tegemist 0:
Järeldus
Selles õpetuses kuvatakse 15 lihtsa näite abil Bashi skripti massiivimuutujate deklareerimise, juurdepääsu, muutmise ja eemaldamise erinevaid meetodeid. Loodame, et see õpetus aitab Bashi kasutajatel Bashi massiivi kasutusalasid üksikasjalikult tundma õppida.