Bash Arrays med eksempler

En matrise er en samling av elementer. I Bash kan en matrise inneholde en blanding av elementer av forskjellige typer, f.eks. Strenger og tall.

I denne opplæringen diskuterer vi hvordan du lager og bruker matriser i Bash. Vi vil også dekke array-operasjoner som looping, utskrift, størrelse og modifisering av innholdet.



Hvordan lage matriser i Bash

Det er to måter vi kan lage Bash arrays:


Ved hjelp av erklær nøkkelordet

declare -a my_bash_array

Dette vil opprette en indeksert matrise med navnet “my_bash_array”.

Initialisere en serie

Vi kan også opprette og initialisere matriser med det samme ved hjelp av oppdragsoperatøren = og elementene i krøllete bukseseler ():


my_bash_array=('apple' 'orange' 'banana')

Eller vi kan også spesifisere indeksen eksplisitt

my_bash_array[0]='apple' my_bash_array[1]='orange' my_bash_array[2]='banana' Merk:Det skal ikke være mellomrom på hver side av = operatør.

Bash Array Lengde

For å få lengden eller størrelsen på en matrise bruker vi ${#array_name[@]}.

For eksempel:

my_bash_array=(foo bar baz) echo 'the array contains ${#my_bash_array[@]} elements' #Output the array contains 3 elements

Bash Array Loop

For å iterere gjennom alle elementene i en Bash-matrise, kan vi bruke for loop:


#!/bin/bash my_array=(foo bar baz) # for loop that iterates over each element for i in '${my_array[@]}' do
echo $i done

Produksjon:

foo bar baz

Skriver ut alle elementene

For å skrive ut alle elementene i en matrise uten løkke, kan vi bruke følgende syntaks:

echo ${my_array[@]}

Legge til elementer i matrise

For å legge til elementer i en matrise bruker vi += operatør. Dette vil legge til et element til slutten av matrisen.

For eksempel:


my_array=(foo bar) my_array+=(baz) echo '${my_array[@]}' foo bar baz

Eller vi kan bruke indeksen til å legge til et element:

my_array=(foo bar) my_array[2]=baz echo '${my_array[@]}' foo bar baz

Slett Elements from Array

For å slette et element fra en Bash-matrise, bruker vi unset kommando.

For eksempel:

my_array=(foo bar baz) unset my_array[1] echo ${my_array[@]} foo baz

Konklusjon

I denne opplæringen dekket vi Bash arrays; hvordan du lager og initialiserer matriser i Bash og hvordan du får lengden, går over elementer, skriver ut elementer og endrer innholdet i en matrise.