- Definieer een array op index
- Definieer een array met meerdere waarden
- Definieer een associatieve array
- Tel de arraywaarden
- Lees de arraywaarden per lus
- Lees de specifieke waarden van de array
- Voeg de arraywaarden in
- Lees de inhoud van een bestand in de array
- Combineer de arraywaarden
- Wijzig de arraywaarden
- Verwijder de arraywaarden
- Zoek en vervang de arraywaarden
- Gebruik een array als functieargument
- Retourneer de array van de functie
- Maak de array leeg
Definieer een array op index
De methode voor het declareren van een array door de sequentiële of niet-sequentiële numerieke indexen te vermelden, wordt getoond in het volgende script. Dit type array wordt een numerieke array genoemd. Hier wordt de array “$books” gemaakt door drie opeenvolgende indexen te definiëren en de array “$products” wordt gemaakt door vier niet-sequentiële indexen te definiëren. Alle waarden van beide arrays worden afgedrukt met behulp van de functie “printf”.
#!/bin/bash
#Definieer de array-index in opeenvolgende volgorde
boeken [ 0 ] = 'De bash-shell leren'
boeken [ 1 ] = 'Cybersecurityoperaties met bash'
boeken [ 2 ] = 'Bash Command Line Pro-tips'
echo 'Alle waarden van de eerste array:'
afdrukkenf '%s\n' ' ${boeken[@]} '
#Definieer de array-index in niet-sequentiële volgorde
producten [ 10 ] = 'Pen'
producten [ 5 ] = 'Potlood'
producten [ 9 ] = 'Rular'
producten [ 4 ] = 'A4-formaat papier'
echo
echo 'Alle waarden van de tweede array:'
afdrukkenf '%s\n' ' ${producten[@]} '
Uitvoer :
De volgende uitvoer verschijnt na het uitvoeren van het script. De waarden van beide arrays worden in de uitvoer afgedrukt. De indexvolgorde wordt gehandhaafd op het moment van afdrukken voor de reeks niet-sequentiële indexen:
Definieer een array met meerdere waarden
Een numerieke array met meerdere waarden kan worden gedeclareerd met behulp van de opdracht “declare” met de optie -a of zonder de opdracht “declare” te gebruiken. In het volgende script wordt de eerste array gedeclareerd met behulp van de opdracht “declare” en wordt de tweede array gemaakt zonder de opdracht “declare” te gebruiken.
#!/bin/bash
#Declareer een numerieke array met het trefwoord 'declare'
verklaren -A namen = ( 'Michael' 'David' 'Alexander' 'Thomas' 'Robert' 'Richard' )
#Druk de arraywaarden af
echo 'Alle waarden van de eerste array:'
afdrukkenf '%s\n' ' ${namen[@]} '
#Declareer een numerieke array zonder het trefwoord 'declare'
boeken = ( 'Shell-scripting-tutorials' 'Bish Bash Bosh!' 'Leer Bash snel' )
#Nieuwe regel toevoegen
echo
#Druk de arraywaarden af
echo 'Alle waarden van de tweede array:'
afdrukkenf '%s\n' ' ${boeken[@]} '
Uitvoer :
De volgende uitvoer verschijnt na het uitvoeren van het script. De waarden van beide arrays worden hier afgedrukt:
Definieer een associatieve array
De array die de tekenreekswaarde als index bevat, wordt een associatieve array genoemd. De optie -A wordt gebruikt met de opdracht “declare” in Bash om een associatieve Bash-array te maken. In het volgende script wordt de eerste associatieve array gedeclareerd door de indexen afzonderlijk te vermelden en wordt de tweede array gedeclareerd door alle sleutelwaardeparen te vermelden op het moment van de arraydeclaratie.
#!/bin/bash#Declareer een associatieve arrayvariabele zonder waarde
verklaren -A medewerker
#Wijs waarde afzonderlijk toe door de index te definiëren
medewerker [ 'ID kaart' ] = '78564'
medewerker [ 'naam' ] = 'Acteurs beschikbaar'
medewerker [ 'na' ] = 'DIRECTEUR'
medewerker [ 'salaris' ] = 300000
#Print twee waarden van de array
echo 'Werknemer-ID: ${werknemer[id]} '
echo 'Naam werknemer: ${werknemer[naam]} '
#Declareer een associatieve array met waarden
verklaren -A cursus = ( [ code ] = 'CSE-206' [ naam ] = 'Object georiënteerd programmeren' [ krediet uur ] = 2.0 )
#Nieuwe regel toevoegen
echo
#Print twee arraywaarden van de tweede array
echo 'Cursus naam: ${cursus[naam]} '
echo 'Krediet uur: ${cursus[credit_hour]} '
Uitvoer :
De volgende uitvoer verschijnt na het uitvoeren van het script. De specifieke waarden van de associatieve array worden hier afgedrukt door de sleutel- of indexwaarde te vermelden:
Tel de arraywaarden
De methode voor het tellen van het totaal aantal elementen van de numerieke array en de associatieve array wordt weergegeven in het volgende script:
#!/bin/bash#Declareer een numerieke array
verklaren -A namen = ( 'Michael' 'David' 'Alexander' 'Thomas' 'Robert' 'Richard' ) ;
echo 'De lengte van de numerieke array is ${#namen[@]} '
#Declareer een associatieve array
verklaren -A cursus = ( [ code ] = 'CSE-206' [ naam ] = 'Object georiënteerd programmeren' [ krediet uur ] = 2.0 )
echo 'De lengte van de associatieve array is ${#cursus[@]} '
Uitvoer :
De volgende uitvoer verschijnt na het uitvoeren van het script. De arraylengte van de numerieke en associatieve arrays wordt hier afgedrukt:
Lees de arraywaarden per lus
De methode voor het lezen van alle waarden van een numerieke array en een associatieve array met behulp van de “for”-lus wordt weergegeven in het volgende script:
#!/bin/bash#Declareer een numerieke array
verklaren -A boeken = ( 'Shell-scripting-tutorials' 'Bish Bash Bosh!' 'Leer Bash snel' )
#Druk de numerieke arraywaarden af
echo 'Numerieke arraywaarden zijn:'
voor in in ' ${boeken[@]} '
Doen
echo ' $in '
klaar
echo
#Declareer een associatieve array met waarden
verklaren -A klanten = (
[ ID kaart ] = 'H-5623'
[ naam ] = 'Dhr. Ahnaf'
[ adres ] = '6/A, Dhanmondi, Dhaka.'
[ telefoon ] = '+8801975642312' )
#Druk de associatieve arraywaarden af
echo 'Associatieve arraywaarden zijn:'
voor k in ' ${!klanten[@]} '
Doen
echo ' $k => ${klanten[$k]} '
klaar
Uitvoer :
De volgende uitvoer verschijnt na het uitvoeren van het script. Hier worden de waarden van de numerieke array en de sleutelwaardeparen van de associatieve array in de uitvoer afgedrukt:
Lees het specifieke waardenbereik van de array
De arraywaarden van het specifieke bereik van de indexen worden weergegeven in het volgende script. In het script wordt een numerieke array van vier elementen gedefinieerd. Twee arraywaarden uit de tweede index van de array worden later afgedrukt.
#!/bin/bash#Declareer een numerieke array
verklaren -A taarten = ( 'Chocoladetaart' 'Vanille cake' 'Rode fluweeltaart' 'aardbeientaart' )
#Print de specifieke arraywaarden
echo 'De 2e en 3e elementen van de arraywaarden zijn:'
afdrukkenf '%s\n' ' ${taarten[@]:1:2} '
Uitvoer :
De volgende uitvoer verschijnt na het uitvoeren van het script. De tweede en derde waarden van de array zijn “Vanilla Cake” en “Red Velvet Cake” die in de uitvoer worden afgedrukt:
Voeg de arraywaardens in
De methode voor het toevoegen van meerdere waarden aan het einde van de array wordt weergegeven in het volgende script. De hoofdarray, die “$books” is, bevat drie elementen en twee elementen worden toegevoegd aan het einde van de array “$books”.
#!/bin/bash#Declareer een numerieke array
verklaren -A boeken = ( 'Shell-scripting-tutorials' 'Bish Bash Bosh!' 'Leer Bash snel' )
#Druk de arraywaarden af voordat u deze invoegt
echo 'Matrixwaarden:'
afdrukkenf '%s\n' ' ${boeken[@]} '
echo
boeken = ( ' ${boeken[@]} ' 'Linux-opdrachtregel en Shell Scripting Bible' 'Geavanceerde Bash-scriptgids door Mendel Cooper' )
#Druk de arraywaarden af na het invoegen
echo 'Matrixwaarden na het invoegen van twee waarden:'
afdrukkenf '%s\n' ' ${boeken[@]} '
Uitvoer :
De volgende uitvoer verschijnt na het uitvoeren van het script. De arraywaarden voor en na het invoegen van nieuwe waarden worden in de uitvoer afgedrukt:
Lees de bestandsinhoud in de array
Maak een tekstbestand met de naam “fruits.txt” met de volgende inhoud om het script van dit voorbeeld te testen:
fruit.txt
MangoJackfruit
Ananas
Oranje
Banaan
In het volgende script wordt de inhoud van een bestand opgeslagen in een array met de naam “$data”. Hier wordt elke regel van het bestand opgeslagen als elk element van de array. Vervolgens worden de arraywaarden afgedrukt.
#!/bin/bash#Lees de bestandsnaam van de gebruiker
lezen -P 'Voer de bestandsnaam in:' bestandsnaam
als [ -F $bestandsnaam ]
Dan
#Lees de bestandsinhoud in een array'
gegevens = ( ` kat ' $bestandsnaam ' ` )
echo 'De inhoud van het bestand vindt u hieronder:'
#Lees het bestand regel voor regel
voor lijn in ' ${gegevens[@]} '
Doen
echo $ lijn
klaar
zijn
Uitvoer :
De volgende uitvoer verschijnt na het uitvoeren van het script. De uitvoer die wordt weergegeven door de opdracht “cat” en de uitvoer van het script zijn vergelijkbaar omdat hetzelfde bestand wordt geopend door de opdracht “cat” en het script:
Combineer de arraywaarden
Er wordt een nieuwe array gemaakt door de waarden van meerdere arrays te combineren. In het volgende script worden twee numerieke reeksen strings gedefinieerd. Vervolgens wordt een nieuwe array gemaakt door de waarden van deze arrays te combineren.
#!/bin/bash#Declareer de eerste array
verklaren -A naamLijst1 = ( 'Michael' 'David' 'Alexander' 'Thomas' )
echo 'De eerste arraywaarden zijn:'
afdrukkenf '%S, ' ${naamLijst1[@]}
echo
#Declareer de tweede array
verklaren -A naamLijst2 = ( 'Robert' 'Richard' )
echo 'De tweede arraywaarden zijn:'
afdrukkenf '%S, ' ${naamLijst2[@]}
echo
#Maak een nieuwe array door twee arrays te combineren
gecombineerde_array = ( ' ${naamLijst1[@]} ' ' ${naamLijst2[@]} ' )
echo 'De gecombineerde arraywaarden zijn:'
afdrukkenf '%S, ' ${gecombineerde_array[@]}
echo
Uitvoer :
De volgende uitvoer verschijnt na het uitvoeren van het script. Hier worden de waarden van drie arrays in de uitvoer afgedrukt. De derde array bevat alle waarden van de eerste en de tweede array:
Wijzig de arraywaarden
De methode voor het bijwerken van een of meer arraywaarden door de index te vermelden, wordt weergegeven in het volgende script:
#!/bin/bash#Declareer de eerste array
verklaren -A namenlijst = ( 'Michaël' 'David' 'Alexander' 'Thomas' )
echo 'Matrixwaarden:'
afdrukkenf '%S, ' ${naamLijst[@]}
echo
#Update de tweede waarde van de array
namenlijst [ 1 ] = 'Robert'
echo 'Arraywaarden na update:'
afdrukkenf '%S, ' ${naamLijst[@]}
echo
Uitvoer :
De volgende uitvoer verschijnt na het uitvoeren van het script. De waarden van de hoofdarray en de bijgewerkte arrays worden in de uitvoer afgedrukt:
Verwijder de arraywaarden
Het commando “unset” wordt gebruikt om het specifieke element of alle elementen van de array te verwijderen. In het volgende script wordt het tweede element van de array verwijderd.
#!/bin/bash#Declareer een numerieke array
verklaren -A boeken = ( 'Shell-scripting-tutorials' 'Bish Bash Bosh!' 'Leer Bash snel' )
#Druk de arraywaarden af voordat u deze verwijdert
echo 'Matrixwaarden:'
afdrukkenf '%s\n' ' ${boeken[@]} '
echo
#Verwijder het 2e element
uitgeschakeld boeken [ 1 ]
#Druk de arraywaarden af na verwijdering
echo 'Arraywaarden na het verwijderen van de tweede waarde:'
afdrukkenf '%s\n' ' ${boeken[@]} '
Uitvoer :
De volgende uitvoer verschijnt na het uitvoeren van het script. De waarden van de hoofdarray en de arraywaarden na het verwijderen van één waarde worden in de uitvoer afgedrukt:
Zoek en vervang de arraywaarden
In het volgende script wordt de specifieke waarde van de array vervangen door een andere waarde als de zoekwaarde die in het patroon is gedefinieerd, overeenkomt met een waarde van de array “$names”.
#!/bin/bash#Declareer de eerste array
verklaren -A namen = ( 'Michael' 'David' 'Alexander' 'Thomas' )
#Druk de originele arraywaarden af
echo 'Originele arraywaarden:'
afdrukkenf '%s\n' ' ${namen[@]} '
#Genereer een tekenreeks na het vervangen van de arraywaarden
bijgewerkte_array = ${namen[@]/Alexander/Richard}
#Druk de arraywaarden af na vervanging
echo 'Matrixwaarden na vervangen:'
afdrukkenf '%s\n' ' ${updated_array[@]} '
Uitvoer :
De volgende uitvoer verschijnt na het uitvoeren van het script. De waarden van de hoofdarray en de arraywaarden na het vervangen van een waarde worden in de uitvoer afgedrukt:
Gebruik een array als functieargument
In het volgende script wordt een arrayvariabele doorgegeven als functieargument en de waarden van die array worden later afgedrukt.
#!/bin/bash#Declareer een reeks getallen
verklaren -A cijfers = ( 10 6 Vier vijf 13 8 )
#Definieer een functie die een argumentwaarde aanneemt
func ( )
{
#Lees het eerste argument
cijfers = $ 1
#Druk de arraywaarden af
echo 'Matrixwaarden:'
afdrukkenf '%d\n' ' ${cijfers[@]} '
}
#Roep de functie aan met de array als argument
func ' ${cijfers[@]} '
Uitvoer :
De volgende uitvoer verschijnt na het uitvoeren van het script:
Retourneert een array uit de functie
In het volgende script wordt de functie aangeroepen met vier numerieke argumenten. Er wordt een array gemaakt met de argumentwaarden en die array wordt door de functie geretourneerd naar de aanroeper.
#!/bin/bash#Definieer een functie die vier argumentwaarden leest
func ( )
{
#Lees de argumentwaarden
cijfers = ( $ 1 $ 2 $3 $ 4 )
#Retourneer de array
echo ' ${cijfers[@]} '
}
#Roep de functie aan met drie argumenten
return_val =$ ( func 78 Vier vijf 90 23 )
#Sla de geretourneerde waarde op in een array
lezen -A op een <<< $return_val
#Print de waarden van de geretourneerde array
echo 'De waarden van de array zijn:'
voor in in ' ${num[@]} '
Doen
echo ' $in '
klaar
Uitvoer :
De volgende uitvoer verschijnt na het uitvoeren van het script:
Maak de array leeg
Het volgende script toont de methode om een array leeg te maken met behulp van de opdracht “unset”. Het totale aantal arraywaarden wordt afgedrukt voor en na het leegmaken van de array.
#!/bin/bash#Declareer een reeks getallen
verklaren -A cijfers = ( 10 6 Vier vijf 13 80 )
echo 'Aantallen arraywaarden: ${#nummers[@]} '
#Maak de array leeg
uitgeschakeld cijfers
echo 'Aantal arraywaarden na het leegmaken van de array: ${#nummers[@]} '
Uitvoer :
De volgende uitvoer verschijnt na het uitvoeren van het script. Het aantal elementen van de array werd 0 nadat de array leeg was gemaakt:
Conclusie
Verschillende methoden voor het declareren, benaderen, wijzigen en verwijderen van de arrayvariabelen in het Bash-script worden in deze tutorial getoond aan de hand van 15 eenvoudige voorbeelden. We hopen dat deze tutorial de Bash-gebruikers zal helpen het gebruik van de Bash-array in detail te leren kennen.