Bash Arrays med exempel

En matris är en samling element. I Bash kan en matris innehålla en blandning av element av olika typer, t.ex. Strängar och siffror.

I denna handledning diskuterar vi hur man skapar och använder matriser i Bash. Vi kommer också att täcka array-operationer som looping, utskrift, få storlek och modifiera innehållet.



Hur man skapar arrays i Bash

Det finns två sätt att skapa Bash-matriser:


Använda deklarera nyckelordet

declare -a my_bash_array

detta skapar en indexerad matris med namnet “my_bash_array”.

Initiera en matris

Vi kan också skapa och initiera matriser i farten med tilldelningsoperatören = och elementen i lockiga hängslen ():


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

Eller så kan vi också specificera indexet uttryckligen

my_bash_array[0]='apple' my_bash_array[1]='orange' my_bash_array[2]='banana' Notera:Det bör inte finnas några mellanslag på vardera sidan om = operatör.

Bash Array längd

För att få längden eller storleken på en matris använder vi ${#array_name[@]}.

Till exempel:

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

Bash Array Loop

För att itera igenom alla element i en Bash-array kan vi använda 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

Produktion:

foo bar baz

Skriva ut alla element

För att skriva ut alla element i en matris utan en loop kan vi använda följande syntax:

echo ${my_array[@]}

Lägga till element i matrisen

För att lägga till element i en matris använder vi += operatör. Detta kommer att lägga till ett element i slutet av matrisen.

Till exempel:


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

Eller så kan vi använda indexet för att lägga till ett element:

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

Ta bort element från Array

För att ta bort ett element från en Bash-array använder vi unset kommando.

Till exempel:

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

Slutsats

I denna handledning täckte vi Bash arrays; hur man skapar och initialiserar matriser i Bash och hur man får längden, slingrar element, skriver ut element och ändrar innehållet i en matris.