Bash Tutorial 6: Arrays
Indholdsfortegnelse:
- Bash Arrays
- Oprettelse af Bash Arrays
- Oprettelse af numerisk indekserede arrays
- Oprettelse af associerende arrays
- Array-operationer
- Referenceelementer
- Array Længde
- Gå igennem matrixen
- Tilføj et nyt element
- Slet et element
- Konklusion
Arrays er en af de mest anvendte og grundlæggende datastrukturer. Du kan tænke på, at en matrix er en variabel, der kan gemme flere variabler i den., vi dækker Bash-matriserne og forklarer, hvordan du bruger dem i dine Bash-scripts.
Bash Arrays
Bash understøtter en-dimensionelt numerisk indekserede og associerende array-typer. Der henvises til numeriske arrays ved hjælp af heltal, og associative refereres til ved hjælp af strenge.
Man kan få adgang til numerisk indekserede matriser fra slutningen ved hjælp af negative indekser, hvor indekset
-1
refererer til det sidste element. Indekserne behøver ikke at være sammenhængende.
I modsætning til de fleste programmeringssprog behøver Bash-arrayelementer ikke at være af samme datatype. Du kan oprette en matrix, der indeholder både strenge og tal.
Bash understøtter ikke multidimensionelle arrays, og du kan ikke have arrayelementer, der også er arrays.
Der er ingen grænse for det maksimale antal elementer, der kan gemmes i en matrix.
Oprettelse af Bash Arrays
Arrays i Bash kan initialiseres på forskellige måder.
Oprettelse af numerisk indekserede arrays
Bash-variabler er ikke-indtastede, enhver variabel kan bruges som et indekseret array uden at erklære det.
Hvis du eksplicit erklærer en matrix, skal du bruge erklæringen indbygget:
declare -a array_name
En måde at oprette et indekseret array er ved at bruge følgende formular:
array_name=value_1 array_name=value_2 array_name=value_n
Hvor
index_*
er et positivt heltal.
En anden måde at oprette en numerisk matrix på er at specificere listen over elementerne inden for parenteser adskilt med tom plads:
array_name=(element_1 element_2 element_N)
Når opstillingen oprettes ved hjælp af formularen ovenfor, starter indeksering ved nul, dvs. det første element har et indeks på
0
.
Oprettelse af associerende arrays
I modsætning til numerisk indekseret, skal de tilknyttede matriser deklareres, før de kan bruges.
For at erklære et tilknyttet array skal du bruge
declare
indbygget med
-A
(store bogstaver):
declare -A array_name
Associerende arrays kan oprettes ved hjælp af følgende formular:
declare -A array_name array_name=value_foo array_name=value_bar array_name=value_xyz
Hvor
index_*
kan være en hvilken som helst streng.
Du kan også oprette et tilknyttet array ved hjælp af nedenstående formular:
declare -A array_name array_name=(=value_foo =value_bar =value_xyz)
Array-operationer
Bash arrays syntaks kan se lidt underligt ud i starten, men det vil være mere fornuftigt, når du læser denne artikel.
Referenceelementer
For at referere til et enkelt element skal du kende elementindekset.
Der henvises til ethvert element ved hjælp af følgende syntaks:
${array_name}
Syntaks for adgang til et array-element ligner syntaks for de fleste af programmeringssprogene. De krøllede seler
${}
kræves for at undgå shell's ekspansionsoperatører til filnavn.
Lad os udskrive elementet med indeks på
1
:
## declare the array declare -a my_array=("Hydrogen" "Helium" "Lithium" "Beryllium") ## print element echo ${my_array}
Helium
## declare the array declare -a my_array=("Hydrogen" "Helium" "Lithium" "Beryllium") ## print all elements echo "${my_array}"
Hydrogen Helium Lithium Beryllium
Den eneste forskel mellem
@
og
*
er, når formen
${my_array}
er omgivet med dobbelt-citater. I dette tilfælde udvides
*
til et enkelt ord, hvor matrixelementer adskilles med mellemrum.
@
udvider hvert array-element til et separat ord. Dette er især vigtigt, når du bruger formularen til at analfabeter gennem matrixelementer.
For at udskrive nøglerne til matrixen skal du tilføje
!
operatør før array-navnet:
${!array_name}
Her er et eksempel:
## declare the array declare -a my_array=("Hydrogen" "Helium" "Lithium" "Beryllium") ## print all elements echo "${!my_array}"
Array Længde
Brug følgende formular for at få længden af en matrix:
${#array_name}
Syntaks er den samme som når der refereres til alle elementer med tilføjelse af
#
-tegnet før array-navnet.
## declare the array declare -a my_array=("Hydrogen" "Helium" "Lithium" "Beryllium") ## array Length echo ${#my_array}
Gå igennem matrixen
Den mest almindelige måde at itereere over hvert element i en matrix er ved at bruge for-loop:
declare -a my_array=("Hydrogen" "Helium" "Lithium" "Beryllium") ## Array Loop for i in "${my_array}" do echo "$i" done
Koden ovenfor gentager sig over matrixen og udskriver hvert element i en ny linje:
Hydrogen Helium Lithium Beryllium
Her er et eksempel på, hvordan du udskriver alle taster og værdier:
declare -a my_array=("Hydrogen" "Helium" "Lithium" "Beryllium") ## Array Loop for i in "${!my_array}" do echo "$i" "${my_array}" done
0 Hydrogen 1 Helium 2 Lithium 3 Beryllium
En anden måde at loop gennem en matrix er at få længden af arrayet og bruge
C style
stilløkken:
declare -a my_array=("Hydrogen" "Helium" "Lithium" "Beryllium") # Length of the array length=${#my_array} # Array Loop for ((i=0; i < ${length}; i++)) do echo $i ${my_array} done
0 Hydrogen 1 Helium 2 Lithium 3 Beryllium
Tilføj et nyt element
For at føje et nyt element til en bash array og specificere dets indeks skal du bruge følgende formular:
my_array="New Element"
Her er et eksempel:
declare -a my_array=("Hydrogen" "Helium" "Lithium" "Beryllium") ## add new element my_array="Aluminum" ## print all elements echo "${my_array}"
Hydrogen Helium Lithium Beryllium Aluminum
En anden måde at tilføje et nyt element til en matrix uden at specificere indekset er ved at bruge
+=
operatoren. Du kan tilføje et eller flere elementer:
declare -a my_array=("Hydrogen" "Helium" "Lithium" "Beryllium") ## add new elements my_array+=(Cobalt Nickel) ## print all elements echo "${my_array}"
Hydrogen Helium Lithium Beryllium Cobalt Nickel
Slet et element
For at slette et enkelt element skal du kende elementindekset. Et element kan fjernes ved hjælp af kommandoen for
unset
kommando:
unset my_array
Lad os se et eksempel:
declare -a my_array=("Hydrogen" "Helium" "Lithium" "Beryllium") ## remove element unset my_array ## print all elements echo "${my_array}"
Konklusion
Vi har forklaret, hvordan man opretter numerisk indekserede og associerende matriser. Vi har også vist, hvordan man itererer gennem matriserne, beregner array-længden og tilføjer og fjerner elementer.
bash terminalSådan kører du Bash på Ubuntu på Windows 10

Aktivering af Windows Subsystem til Linux giver dig mulighed for at køre Bash på Ubuntu på Windows 10, Bash scripts , Linux-kommandolinjeværktøjer, Linux-første værktøjer.
Bash til løkke

Der er 3 grundlæggende løkkekonstruktioner i Bash-scripting, til loop, while loop og indtil loop. I denne tutorial vil vi dække det grundlæggende for løkker i Bash såvel som pausen og fortsætte udsagn for at ændre strømmen af en løkke.
Bash: tilføj filen

I Linux er der flere måder at tilføje tekst til en fil. Denne artikel forklarer nogle af dem.