Introduksjon til Array i Unix

Array er en datastruktur som inneholder en gruppe elementer som er typiske for den samme datatypen som streng, heltall, flyte osv. Array-datastruktur er også tilgjengelig i Unix.

  • Array in Unix: Det er samlingen av elementer som kanskje eller ikke er av samme datatype.
  • Indeks: Array er nullbasert, noe som betyr at elementer i matrisen refereres til av indeksen som starter null.
  • Størrelse: Det er ingen maksimalgrense for størrelsen på matrisen

Syntax of Array i Unix

Det er forskjellige måter å danne en rekke i shell scripting. La oss gå gjennom hver enkelt av dem i detaljer:

1. Indirekte erklæring: Her tildeles verdi for en bestemt indeks mens du er på farten. Eksempel på dette er nevnt nedenfor.

syntaks:

array_name(index) = value

2. Eksplisitt erklæring: Først blir arrayen deklarert og deretter senere verdiene tilordnet den. Declare er innebygd nøkkelord og -a er et alternativ for å lese innebygd som gjør det mulig å lese og tilordne verdier.

syntaks:

declare -a array_name

3. Sammensatt tilordning: Her deklareres matrisen med flere verdier om gangen.

syntaks:

array_name = (value1 value2 value3 . . . valueN)

Eller

array_name = ((0)=value1, (1)=value2, (2)=value3..)

Her er indeksen valgfri hvis indeksen ikke er oppgitt, tildeles verdien til den siste indeksen pluss en

Hvordan fungerer Array i Unix?

Vi har lært de forskjellige måtene å lage en matrise i Unix, la oss nå gå videre og se forskjellige operasjoner som kan utføres på Unix-matrisen.

1. Vi vil lage en rekke navn

2. For å få tilgang til alle elementene i matrisen bruker du enten (*) eller (@)

Kode:

echo $(first_name(*))
echo $(first_name(@))

Merk: ekko-kommando er en innebygd kommando i Unix som brukes til å vise teksten eller strengen som sendes som et argument til kommandoen. Syntaksen til 'ekko' er nevnt nedenfor.

syntaks:

echo (options) (arguments)

3. For å få tilgang til ethvert spesifikt element av strengen ved hjelp av indeksen.

Kode:

echo $(first_name(0))
echo $(first_name(1))
echo $(first_name(2))

Produksjon:

Merk: () krøllete seler brukes til å referere til innholdet i matrisen.

4. For å skrive ut elementene i et område. Syntaks for det samme er som følger:

syntaks:

echo $array_name(which element):starting_index:count_element)

La oss gjøre oss kjent med det samme.

Kode:

echo $(first_name(@):0:2)
echo $(first_name(@):2:3)
echo $(first_name(0):1:2)

Produksjon:

@ - refererer til alle elementene i matrisen
I kommandoen ekko $ (first_name (@): 0: 2)
@ vurder alle elementene i matrisen. 0 - betyr å starte med akkurat denne indeksen og 2 viser antall elementer fra utgangspunktet
2 viser et antall elementer fra utgangspunktet

I denne kommandoen ekko $ (first_name (0): 1: 2)
0 - vurder 0 - elementet i matrisen. 1- er utgangspunktet og 2 - er tellingen av antall elementer fra utgangspunktet

5. For å få størrelsen på matrisen

Kode:

echo $(#first_name(@))
or
echo $(#first_name(*))

Produksjon:


Merk: # brukes til å finne lengden på et spesifikt element i en matrise.

6. For å finne lengden på et spesifikt element i en matrise

Kode:

echo $(#first_name(0))

Utgang :

7. For å få indeksen til matrisen for å bruke kommandoen nedenfor.

Kode:

echo $(!first_name(@))

Produksjon:


Merk :! brukes til å få indeksen for matrisen.

8. For å slette arrayet i kommandoen som ikke er angitt skript, brukes. Det er en innebygd kommando for å ødelegge en matrise eller ethvert element av matrisen

syntaks:

unset array_name

Kode:

unset first_name

9. Slik sletter du et element ved en bestemt indeks

unset first_name(2)

Dette vil slette elementet i indeks 2.

10. For å søke etter et spesifikt mønster i matrisen.

Kode:

echo $(first_name(@)/*(aA)*/)

Produksjon:

Her, fornavn (@): refererer til alle elementene i matrisen
/ mønster som skal søkes /: Det er mønsteret som skal søkes i matrisen eller dets element.
Det vil returnere 1 hvis kampen er funnet og 0 hvis ingen kamp ble funnet.

11. For å søke etter et bestemt mønster og erstatte det i den angitte matrisen.

Kode:

echo $(first_name(@)//a/A)

first_name (@): Tenk på alle elementene i matrisen
// mønster som skal søkes / erstatningsstreng /: Søk & erstatningsstreng

Produksjon:

first_name (2): Søk og erstatt operasjoner som skal utføres på elementet med indeks 2.

Mens du utfører søk og erstatter operasjonen, er det ingen endringer gjort i den opprinnelige verdien av matrisen. Den returnerer en ny verdi som kan lagres i samme eller forskjellige variabler.

12. For å utføre en operasjon på elementene i en matrise kan vi bruke Loops. Som alle andre programmeringsspråk støtter Bourne shell to typer løkker, dvs. for loop og while loop. La oss se på et eksempel for å iterere over en matrise som brukes for loop.

Kode:

Arr = (1 2 3 4 5)
for i in “$(Arr(@))”
do
echo $i
done

Utgang :

På samme måte kan du iterere over en matrise ved å bruke en stundsløyfe også.

Husk at det er forskjellige typer skall tilgjengelig i Unix som Bash, K shell, Bourne shell, etc. Shell er ikke annet enn et grensesnitt til Unix-systemer med forskjellige sett med kommandoer og funksjoner. Så basert på forskjellige typer skall er det forskjellige syntaks tilknyttet matrisen og dens operasjoner med en liten variasjon i syntaks for kommandoene som er diskutert ovenfor.

Bash Shell tillater også arrayoperasjonene på variablene uten at variablene er eksplisitt deklarert som en matrise. La oss se på eksemplet for å få en bedre forståelse av utsagnet ovenfor.

Kode:

String_variable = India is a democratic country
echo “$(string(0))”

Produksjon:

Konklusjon

I utgangspunktet er matrise en samling av elementer som er lagret i et sammenhengende minneplass. Hensikten bak å danne en matrise er å lagre flere elementer av samme type sammen med samme eller forskjellige datatyper. I et praktisk scenario hvorfor arraystruktur henger etter popularitet, skyldes den manglende kompatibiliteten med forskjellige skall og komplekse strukturer.

Anbefalte artikler

Dette er en guide til Array i Unix. Her diskuterer vi syntaks og arbeid av matrise i Unix sammen med forskjellige eksempler og kodeimplementering. Du kan også se på følgende artikler for å lære mer -

  1. Linux Proxy Server
  2. Typer skjell i Linux
  3. Opprett bruker i Linux
  4. Unix filsystem
  5. Guide to For Loop in Shell Scripting