- Apibrėžkite masyvą pagal indeksą
- Apibrėžkite masyvą su keliomis reikšmėmis
- Apibrėžkite asociatyvųjį masyvą
- Suskaičiuokite masyvo reikšmes
- Skaitykite masyvo reikšmes pagal kilpą
- Perskaitykite konkrečias masyvo reikšmes
- Įdėkite masyvo reikšmes
- Perskaitykite failo turinį į masyvą
- Sujunkite masyvo reikšmes
- Pakeiskite masyvo reikšmes
- Pašalinkite masyvo reikšmes
- Ieškokite ir pakeiskite masyvo reikšmes
- Naudokite masyvą kaip funkcijos argumentą
- Grąžinkite masyvą iš funkcijos
- Padarykite masyvą tuščią
Apibrėžkite masyvą pagal indeksą
Masyvo deklaravimo būdas paminėjus nuoseklius arba nenuoseklius skaitinius indeksus parodytas šiame scenarijuje. Šio tipo masyvas vadinamas skaitmeniniu masyvu. Čia „$books“ masyvas sukuriamas apibrėžiant tris nuoseklius indeksus, o „$products“ masyvas sukuriamas apibrėžiant keturis nenuoseklius indeksus. Visos abiejų masyvų reikšmės spausdinamos naudojant „printf“ funkciją.
#!/bin/bash
#Apibrėžkite masyvo indeksą nuoseklia tvarka
knygos [ 0 ] = „Mokymasis bash Shell“
knygos [ 1 ] = „Kibernetinio saugumo operacijos su bash“
knygos [ 2 ] = „Bash Command Line Pro patarimai“
aidas 'Visos pirmojo masyvo reikšmės:'
printf '%s\n' “ ${knygos[@]} “
#Apibrėžkite masyvo indeksą ne eilės tvarka
Produktai [ 10 ] = 'Rašiklis'
Produktai [ 5 ] = 'Pieštukas'
Produktai [ 9 ] = 'valdomas'
Produktai [ 4 ] = 'A4 dydžio popierius'
aidas
aidas 'Visos antrojo masyvo reikšmės:'
printf '%s\n' “ ${products[@]} “
Išvestis :
Įvykdžius scenarijų pasirodo ši išvestis. Abiejų masyvų reikšmės atspausdinamos išvestyje. Indeksų tvarka išlaikoma spausdinant nenuoseklių indeksų masyvą:
Apibrėžkite masyvą su keliomis reikšmėmis
Skaitinis masyvas su keliomis reikšmėmis gali būti deklaruojamas naudojant komandą „declare“ su parinktimi -a arba nenaudojant komandos „declare“. Šiame scenarijuje pirmasis masyvas deklaruojamas naudojant komandą „declare“, o antrasis masyvas sukuriamas nenaudojant komandos „declare“.
#!/bin/bash
#Deklaruokite skaitmeninį masyvą naudodami raktinį žodį „declare“.
deklaruoti -a vardai = ( 'Michaelas' 'Deividas' 'Aleksandras' 'Tomas' 'Robertas' 'Ričardas' )
#Spausdinkite masyvo reikšmes
aidas 'Visos pirmojo masyvo reikšmės:'
printf '%s\n' “ ${names[@]} “
#Deklaruoti skaitinį masyvą be raktinio žodžio „declare“.
knygos = ( „Shell Scripting Tutorials“ 'Bish Bash Bosh!' „Greitai išmok Bash“ )
#Pridėti naują eilutę
aidas
#Spausdinkite masyvo reikšmes
aidas 'Visos antrojo masyvo reikšmės:'
printf '%s\n' “ ${knygos[@]} “
Išvestis :
Įvykdžius scenarijų pasirodo ši išvestis. Abiejų masyvų reikšmės spausdinamos čia:
Apibrėžkite asociatyvųjį masyvą
Masyvas, kuriame yra eilutės reikšmė kaip indeksas, vadinamas asociatyviniu masyvu. Parinktis -A naudojama kartu su komanda „declare“ programoje „Bash“, kad būtų sukurtas asociatyvus „Bash“ masyvas. Šiame scenarijuje pirmasis asociatyvus masyvas deklaruojamas atskirai paminėjus indeksus, o antrasis masyvas deklaruojamas minint visas raktų ir reikšmių poras masyvo deklaravimo metu.
#!/bin/bash#Deklaruoti asociatyvų masyvo kintamąjį be reikšmės
deklaruoti -A darbuotojas
#Priskirkite vertę atskirai, nustatydami indeksą
darbuotojas [ 'id' ] = '78564'
darbuotojas [ 'vardas' ] = „Aktoriai yra“
darbuotojas [ 'post' ] = 'generalinis direktorius'
darbuotojas [ 'atlyginimas' ] = 300 000
#Spausdinkite dvi masyvo reikšmes
aidas 'Darbuotojo ID: ${employee[id]} “
aidas 'Darbuotojo vardas: ${employee[name]} “
#Deklaruokite asociatyvų masyvą su reikšmėmis
deklaruoti -A kursą = ( [ kodas ] = „CSE-206“ [ vardas ] = 'Objektinis programavimas' [ kredito_valanda ] = 2.0 )
#Pridėti naują eilutę
aidas
#Spausdinkite dvi antrojo masyvo masyvo reikšmes
aidas 'Kurso pavadinimas: ${kursas[vardas]} “
aidas 'Kredito valanda: ${kursas[kredito_valanda]} “
Išvestis :
Įvykdžius scenarijų pasirodo ši išvestis. Konkrečios asociatyvaus masyvo reikšmės atspausdinamos čia, nurodant rakto arba indekso reikšmę:
Suskaičiuokite masyvo reikšmes
Skaičių masyvo ir asociatyvaus masyvo visų elementų skaičiavimo metodas parodytas šiame scenarijuje:
#!/bin/bash#Deklaruoti skaitinį masyvą
deklaruoti -a vardai = ( 'Michaelas' 'Deividas' 'Aleksandras' 'Tomas' 'Robertas' 'Ričardas' ) ;
aidas 'Skaičių masyvo ilgis yra ${#names[@]} “
#Deklaruoti asociatyvų masyvą
deklaruoti -A kursą = ( [ kodas ] = „CSE-206“ [ vardas ] = 'Objektinis programavimas' [ kredito_valanda ] = 2.0 )
aidas 'Asociatyvaus masyvo ilgis yra ${#kursas[@]} “
Išvestis :
Įvykdžius scenarijų pasirodo ši išvestis. Skaitinių ir asociatyvinių masyvų masyvo ilgis spausdinamas čia:
Skaitykite masyvo reikšmes pagal kilpą
Visų skaitmeninio masyvo ir asociatyvaus masyvo reikšmių nuskaitymo metodas naudojant „for“ kilpą parodytas šiame scenarijuje:
#!/bin/bash#Deklaruoti skaitinį masyvą
deklaruoti -a knygos = ( „Shell Scripting Tutorials“ 'Bish Bash Bosh!' „Greitai išmok Bash“ )
#Spausdinkite skaitines masyvo reikšmes
aidas 'Skaičių masyvo reikšmės yra:'
dėl in in “ ${knygos[@]} “
daryti
aidas “ $in “
padaryta
aidas
#Deklaruokite asociatyvų masyvą su reikšmėmis
deklaruoti -A klientų = (
[ id ] = „H-5623“
[ vardas ] = 'Ponas. Ahnaf'
[ adresu ] = „6/A, Dhanmondi, Daka“.
[ telefonas ] = „+8801975642312“ )
#Spausdinkite asociatyvias masyvo reikšmes
aidas 'Asociacinės masyvo reikšmės yra:'
dėl k in “ ${!clients[@]} “
daryti
aidas “ $k => ${clients[$k]} “
padaryta
Išvestis :
Įvykdžius scenarijų pasirodo ši išvestis. Čia išvestyje atspausdinamos skaitinio masyvo reikšmės ir asociatyvaus masyvo rakto-reikšmių poros:
Perskaitykite konkretų masyvo verčių diapazoną
Tam tikro indeksų diapazono masyvo reikšmės rodomos šiame scenarijuje. Scenarijuje yra apibrėžtas keturių elementų skaitmeninis masyvas. Dvi masyvo reikšmės iš antrojo masyvo indekso išspausdinamos vėliau.
#!/bin/bash#Deklaruoti skaitinį masyvą
deklaruoti -a pyragaičiai = ( 'Šokoladinis pyragas' 'Vanilinis pyragas' 'Raudonojo aksomo pyragas' 'Braškių pyragas' )
#Spausdinkite konkrečias masyvo reikšmes
aidas 'Antrasis ir trečiasis masyvo reikšmių elementai yra:'
printf '%s\n' “ ${pyragai[@]:1:2} “
Išvestis :
Įvykdžius scenarijų pasirodo ši išvestis. Antroji ir trečioji masyvo reikšmės yra „Vanilla Cake“ ir „Red Velvet Cake“, kurios atspausdinamos išvestyje:
Įdėkite masyvo reikšmes
Kelių reikšmių pridėjimo masyvo pabaigoje metodas parodytas kitame scenarijuje. Pagrindiniame masyve, kuris yra „$books“, yra trys elementai ir du elementai pridedami „$books“ masyvo pabaigoje.
#!/bin/bash#Deklaruoti skaitinį masyvą
deklaruoti -a knygos = ( „Shell Scripting Tutorials“ 'Bish Bash Bosh!' „Greitai išmok Bash“ )
#Prieš įterpdami atspausdinkite masyvo reikšmes
aidas 'Masyvo reikšmės:'
printf '%s\n' “ ${knygos[@]} “
aidas
knygos = ( “ ${knygos[@]} “ „Linux“ komandų eilutė ir „Shell Scripting Bible“ Mendelio Cooperio „Išplėstinis Bash scenarijų vadovas“ )
#Įdėję spausdinkite masyvo reikšmes
aidas 'Masyvo reikšmės įterpus dvi reikšmes:'
printf '%s\n' “ ${knygos[@]} “
Išvestis :
Įvykdžius scenarijų pasirodo ši išvestis. Masyvo reikšmės prieš ir po naujų reikšmių įterpimo išspausdinamos išvestyje:
Perskaitykite failo turinį į masyvą
Norėdami išbandyti šio pavyzdžio scenarijų, sukurkite tekstinį failą pavadinimu „fruits.txt“ su tokiu turiniu:
vaisiai.txt
MangoJackfruit
Ananasas
Oranžinė
Bananas
Šiame scenarijuje failo turinys saugomas masyve pavadinimu „$data“. Čia kiekviena failo eilutė saugoma kaip kiekvienas masyvo elementas. Toliau spausdinamos masyvo reikšmės.
#!/bin/bash#Perskaitykite vartotojo failo pavadinimą
skaityti -p 'Įveskite failo pavadinimą:' failo pavadinimas
jeigu [ -f $failo pavadinimas ]
tada
#Perskaitykite failo turinį į masyvą'
duomenis = ( ` katė “ $failo pavadinimas “ ` )
aidas 'Failo turinys pateikiamas toliau:'
# Skaitykite failą eilutė po eilutės
dėl linija in “ ${duomenys[@]} “
daryti
aidas $ eilutė
padaryta
būti
Išvestis :
Įvykdžius scenarijų pasirodo ši išvestis. Išvestis, kurią rodo komanda „cat“, ir scenarijaus išvestis yra panašios, nes tą patį failą pasiekia komanda „cat“ ir scenarijus:
Sujunkite masyvo reikšmes
Sujungiant kelių masyvų reikšmes sukuriamas naujas masyvas. Šiame scenarijuje yra apibrėžti du skaitiniai eilučių masyvai. Tada sujungiant šių masyvų reikšmes sukuriamas naujas masyvas.
#!/bin/bash#Deklaruoti pirmąjį masyvą
deklaruoti -a vardų sąrašas1 = ( 'Michaelas' 'Deividas' 'Aleksandras' 'Tomas' )
aidas 'Pirmosios masyvo reikšmės yra:'
printf „%s“, ${nameList1[@]}
aidas
#Deklaruoti antrąjį masyvą
deklaruoti -a vardų sąrašas2 = ( 'Robertas' 'Ričardas' )
aidas 'Antros masyvo reikšmės yra:'
printf „%s“, ${nameList2[@]}
aidas
#Sukurkite naują masyvą sujungdami du masyvus
kombinuotas_masyvas = ( “ ${nameList1[@]} “ “ ${nameList2[@]} “ )
aidas 'Sujungtos masyvo reikšmės yra:'
printf „%s“, ${combined_array[@]}
aidas
Išvestis :
Įvykdžius scenarijų pasirodo ši išvestis. Čia išvestyje atspausdinamos trijų masyvų reikšmės. Trečiame masyve yra visos pirmojo ir antrojo masyvo reikšmės:
Pakeiskite masyvo reikšmes
Vienos ar kelių masyvo reikšmių atnaujinimo būdas paminėjus indeksą parodytas šiame scenarijuje:
#!/bin/bash#Deklaruoti pirmąjį masyvą
deklaruoti -a vardų sarašas = ( 'Michaelas' 'Deividas' 'Aleksandras' 'Tomas' )
aidas 'Masyvo reikšmės:'
printf „%s“, ${nameList[@]}
aidas
#Atnaujinkite 2-ąją masyvo reikšmę
vardų sarašas [ 1 ] = 'Robertas'
aidas 'Masyvo reikšmės po atnaujinimo:'
printf „%s“, ${nameList[@]}
aidas
Išvestis :
Įvykdžius scenarijų pasirodo ši išvestis. Išvestyje atspausdinamos pagrindinio masyvo ir atnaujintų masyvų reikšmės:
Pašalinkite masyvo reikšmes
Komanda „nustatyti“ naudojama tam tikram elementui arba visiems masyvo elementams pašalinti. Kitame scenarijuje pašalinamas antrasis masyvo elementas.
#!/bin/bash#Deklaruoti skaitinį masyvą
deklaruoti -a knygos = ( „Shell Scripting Tutorials“ 'Bish Bash Bosh!' „Greitai išmok Bash“ )
#Prieš pašalindami išspausdinkite masyvo reikšmes
aidas 'Masyvo reikšmės:'
printf '%s\n' “ ${knygos[@]} “
aidas
#Pašalinkite 2-ąjį elementą
nenustatyta knygos [ 1 ]
#Pašalinus spausdinkite masyvo reikšmes
aidas „Masyvo reikšmės pašalinus 2-ąją reikšmę:“
printf '%s\n' “ ${knygos[@]} “
Išvestis :
Įvykdžius scenarijų pasirodo ši išvestis. Išvestyje atspausdinamos pagrindinio masyvo reikšmės ir masyvo reikšmės pašalinus vieną reikšmę:
Ieškokite ir pakeiskite masyvo reikšmes
Šiame scenarijuje tam tikra masyvo reikšmė pakeičiama kita reikšme, jei šablone apibrėžta paieškos reikšmė atitinka bet kurią masyvo „$names“ reikšmę.
#!/bin/bash#Deklaruoti pirmąjį masyvą
deklaruoti -a vardai = ( 'Michaelas' 'Deividas' 'Aleksandras' 'Tomas' )
#Atspausdinkite pradines masyvo reikšmes
aidas 'Pradinės masyvo reikšmės:'
printf '%s\n' “ ${names[@]} “
#Sukurkite eilutę pakeitę masyvo reikšmes
atnaujintas_masyvas = ${names[@]/Aleksandras/Ričardas}
#Spausdinkite masyvo reikšmes po pakeitimo
aidas 'Masyvo reikšmės po pakeitimo:'
printf '%s\n' “ ${updated_array[@]} “
Išvestis :
Įvykdžius scenarijų pasirodo ši išvestis. Pagrindinio masyvo reikšmės ir masyvo reikšmės pakeitus reikšmę išspausdinamos išvestyje:
Naudokite masyvą kaip funkcijos argumentą
Šiame scenarijuje masyvo kintamasis perduodamas kaip funkcijos argumentas, o to masyvo reikšmės išspausdinamos vėliau.
#!/bin/bash#Pareikškite skaičių masyvą
deklaruoti -a numeriai = ( 10 6 Keturi. Penki 13 8 )
#Apibrėžkite funkciją, kuri paims argumento reikšmę
func ( )
{
#Perskaitykite pirmąjį argumentą
numeriai = 1 USD
#Spausdinkite masyvo reikšmes
aidas 'Masyvo reikšmės:'
printf '%d\n' “ ${numbers[@]} “
}
# Iškvieskite funkciją naudodami masyvą kaip argumentą
func “ ${numbers[@]} “
Išvestis :
Įvykdžius scenarijų pasirodo ši išvestis:
Grąžinkite masyvą iš funkcijos
Šiame scenarijuje funkcija iškviečiama keturiais skaitiniais argumentais. Sukuriamas masyvas su argumentų reikšmėmis ir tas masyvas grąžinamas iš funkcijos skambintojui.
#!/bin/bash#Apibrėžkite funkciją, kuri nuskaito keturias argumentų reikšmes
func ( )
{
#Perskaitykite argumentų reikšmes
numeriai = ( 1 USD 2 USD 3 USD 4 USD )
#Grąžinkite masyvą
aidas “ ${numbers[@]} “
}
# Iškvieskite funkciją su trimis argumentais
grąžinimo_val =$ ( func 78 Keturi. Penki 90 23 )
#Išsaugokite grąžinamąją reikšmę masyve
skaityti -a ant vieno <<< $return_val
#Atspausdinkite grąžinamo masyvo reikšmes
aidas 'Masyvo reikšmės yra:'
dėl in in “ ${num[@]} “
daryti
aidas “ $in “
padaryta
Išvestis :
Įvykdžius scenarijų pasirodo ši išvestis:
Padarykite masyvą tuščią
Šis scenarijus parodo būdą, kaip masyvą padaryti tuščią naudojant komandą „nustatyti“. Bendras masyvo reikšmių skaičius išspausdinamas prieš ir po to, kai masyvas tuščias.
#!/bin/bash#Pareikškite skaičių masyvą
deklaruoti -a numeriai = ( 10 6 Keturi. Penki 13 80 )
aidas 'Masyvo reikšmių skaičiai: ${#numers[@]} “
#Padarykite masyvą tuščią
nenustatyta numeriai
aidas 'Masyvo reikšmių skaičius po to, kai masyvas tuščias: ${#numers[@]} “
Išvestis :
Įvykdžius scenarijų pasirodo ši išvestis. Masyvo elementų skaičius tapo 0, kai masyvas buvo tuščias:
Išvada
Įvairūs Bash scenarijaus masyvo kintamųjų deklaravimo, prieigos, modifikavimo ir pašalinimo metodai parodyti šiame vadove naudojant 15 paprastų pavyzdžių. Tikimės, kad ši pamoka padės „Bash“ vartotojams išsamiai sužinoti apie „Bash“ masyvo naudojimą.