Hvordan bruke matriser i bash

Hvordan bruke matriser i bash
Når du vil bruke flere data ved hjelp av en enkelt variabel i et hvilket som helst programmeringsspråk, må du bruke matrisevariabler. Listen over data kan tilordnes og brukes ved hjelp av en array -variabel. Bash er et svakt typisk språk som ikke krever å definere noen datatype for å erklære variabelen. Array -erklæring i bash er litt forskjellig fra andre standardprogrammeringsspråk. To typer av matrisen kan erklæres i bash. Numerisk matrise og assosiativ matrise. Hvis indeksen for en matrise er numerisk, kalles den en numerisk matrise, og hvis indeksen for en matrise er en streng, kalles den et assosiativt utvalg. Hvordan du kan erklære en numerisk matrise, assosiativ matrise og iterate elementer i matrisen som bruker for loop er beskrevet med eksempler i denne opplæringen.

Eksempel-1: Numerisk array-erklæring:

Standardindeksen for en matrise er numerisk, og alle verdier tas som en strengverdi. En enkel numerisk matrise med 5 strengverdier er erklært her. De ekko Kommando brukes her for å skrive ut hver matriseverdier separat. Hvis du vil skrive ut alle verdiene på matrisen med singel ekko Kommando, da må "*" "-symbolet brukes i matrisens indeks. Lag en bash -fil med følgende skript som viser to måter å erklære en matrise i bash -skriptet.

#!/bin/bash
MyArray = (HTML JavaScript CSS JQuery Bootstrap)
# Skriv ut 5 verdier individuelt
Echo "---------- Skriv ut 5 verdier individuelt ---------------"
ekko $ myArray [0]
ekko $ myArray [1]
ekko $ myArray [2]
ekko $ myArray [3]
ekko $ myArray [4]
#Trykk alle verdier ved å bruke *
Echo "----------------- Skriv ut alle verdier -------------------"
ekko $ myArray [*]

Produksjon:

Følgende utgang vises etter å ha utført skriptet ovenfor.

Eksempel-2: Associativ array-erklæring:

Hver indeks av matrisen må deklareres separat i det assosiative matrisen. Lag en bash -fil med følgende skript for å vite bruken av assosiativ matrise i bash. Et assosiativt utvalg av 4 elementer er erklært i følgende eksempler. Verdiene til matrisen kan skrives ut ved å bruke hver indeks hver for seg, som forrige eksempel. Bare indeksene til det assosiative matrisen kan skrives ut ved å bruke "!”Og“@”symboler.

#!/bin/bash
# Assosiativ array -erklæring
erklære -a Myarr
# Verdiinitialisering
Myarr = ([Mark] = 79 [John] = 93 [Ella] = 87 [Mila] = 83)
# Skriv ut verdier
ekko $ myarr [mark]
ekko $ myarr [John]
ekko $ myarr [ella]
ekko $ myarr [mila]
#Avtrykkindekser
ekko $ !Myarr [@]

Produksjon:

Følgende utgang vises etter å ha utført skriptet ovenfor.

Eksempel-3: Lese arrayverdier som bruker for loop:

Det totale antall elementer i en hvilken som helst bash -matrise kan telles ved å bruke “#” og “*” symboler vist i den første delen av følgende eksempel. Lag en bash -fil med følgende skript for å kjenne måten å lese arrayverdier ved hjelp av loopen. Til Loop brukes ofte til å iterere verdiene til en matrise. Du kan også lese arrayverdier og arrayindekser separat ved å bruke for loop. Ulike løkker brukes i følgende eksempel for å lese arrayindekser, arrayverdier og begge deler.

#!/bin/bash
# Assosiativ array -erklæring
erklære -a Myarr
# Verdiinitialisering
Myarr = ([os] = windows [web] = php [db] = oracle)
ekko "Totalt antall elementer = $ #myarr [*]"
ekko "arrayverdier er"
for verdi i $ myarr [@]
gjøre
ekko $ verdi
Ferdig
ekko "Array -indekser er"
for nøkkel i $ !Myarr [@]
gjøre
Echo $ Key
Ferdig
Ekko "Array Values ​​and Indexes:"
for nøkkel i $ !Myarr [*]
gjøre
ekko "$ key => $ myarr [$ key]"
Ferdig

Produksjon:
Følgende utgang vises etter å ha utført skriptet ovenfor.

Eksempel-4: Legg til element i matrisen

Det nye elementet kan legges til en matrise på forskjellige måter. Måten å legge til ett eller flere elementer ved hjelp av Shorthand -operatør (+=) har vist i dette eksemplet. Lag en bash -fil med følgende skript for å vite hvordan det nye elementet kan settes inn i en matrise.

#!/bin/bash
# Erklære en numerisk matrise
erklære -a Myarr
# Initialiser matrisen med to elementer
Myarr = (Ubuntu Centos)
# Skriv ut totalt antall elementer
ekko "Totalt antall elementer i den nåværende matrisen = $ #myarr [*]"
# Legg til ett element
Myarr+= (Fedora)
# Skriv ut totalt antall elementer etter å ha lagt til ett element
ekko "Totalt antall elementer etter å ha lagt til ett element = $ #myarr [*]"
# Legg til to elementer
Myarr+= (Redhat Linuxmint)
# Skriv ut totalt antall elementer etter å ha lagt til to elementer
ekko "Totalt antall elementer etter å ha lagt til to elementer = $ #myarr [*]"
# Skriv ut alle elementene i matrisen
Echo "Array Elements er:"
ekko "$ myarr [@]"

Produksjon:

Følgende utgang vises etter å ha utført skriptet ovenfor.

Eksempel-5: Slett et element fra matrisen

'Unset'Kommando brukes til å slette ett eller alle elementer fra matrisen. Lag en bash -fil med følgende skript for å vite hvordan du sletter ett og alle elementer fra en numerisk matrise.

#!/bin/bash
# Erklære en numerisk matrise
erklære -a Myarr
# Initialiser matrisen med to elementer
Myarr = (Dell HP Lenavo Acer Asus Avita)
# Skriv ut totalt antall elementer
ekko "Totalt antall elementer i den nåværende matrisen = $ #myarr [*]"
# Skriv ut verdier for array før sletting
ekko "arrayverdier før slett:"
ekko "$ myarr [@]"
# Slett fjerde element
Unset Myarr [3]
# Skriv ut totalt antall elementer etter å ha slettet et element
ekko "Totalt antall elementer etter å ha slettet ett element = $ #myarr [*]"
# Skriv ut verdier etter sletting
Ekko "arrayverdier etter å ha slettet ett element:"
ekko "$ myarr [@]"
# Slett alle elementer
Unset Myarr
# Skriv ut arrayverdier etter å ha slettet alle elementer
Ekko "arrayverdier etter å ha slettet alle elementer:"
ekko "$ myarr [@]"

Produksjon:

Følgende utgang vises etter å ha utført skriptet ovenfor.

Eksempel-6: Skriv ut strengverdien til flere ord

Verdien av matrisen krever å omslutte med doble sitater (“”) for å legge til strengverdi av flere ord i en matrise. Lag en bash -fil med følgende skript der en tilknyttet matrise har initialisert med strengverdiene til flere ord.

#!/bin/bash
# Erklære et assosiativt utvalg
erklære -a Myarr
# Initialiser matrisen med strengverdien av flere ord
Myarr = ([CSE-101] = "Computer Fundamental" [CSE-207] = "Java-programmering" [CSE-312] = "Web-programmering")
# Skriv ut arrayverdiene til flere ord
Ekko "Array -verdier er:"
for val i "$ myarr [@]"; gjøre
Echo $ val
Ferdig

Produksjon:

Følgende utgang vises etter å ha utført skriptet ovenfor.

Konklusjon:

Matrisen brukes i programmering til mange formål. Noen vanlige og veldig enkle bruksområder av matrisen i bash er vist i denne opplæringen. Etter å ha utøvd eksemplene ovenfor, vil det grunnleggende konseptet med bash -matrise bli fjernet for bash -brukerne, og de vil kunne bruke basrah -matrise på riktig måte i skriptet.