Bruke associative tabeller

Bash:
Bruke associative tabeller

Hvordan:

Først, erklær en assosiativ tabell i Bash:

declare -A my_array

Deretter kan du begynne å fylle den med verdier, ved å bruke strenger som nøkler:

my_array["name"]="Linux Journal"
my_array["topic"]="Programmering"

For å få tilgang til et element, bruk nøkkelen:

echo ${my_array["name"]}  # Utdata: Linux Journal

Å iterere over nøkler og verdier er også rett frem:

for key in "${!my_array[@]}"; do
    echo "$key: ${my_array[$key]}"
done

Eksempel på utdata kunne se slik ut:

name: Linux Journal
topic: Programmering

For å legge til eller endre elementer, bare tilordne en verdi til en nøkkel, på samme måte som den første fyllingen:

my_array["readers"]="Du"

Og for å fjerne et element, bruk unset:

unset my_array["topic"]

Dypdykk

Assosiative tabeller ble introdusert i Bash versjon 4.0, noe som gjør dem til en relativt ny tillegg til språket. Før deres introduksjon var håndtering av arrayer med ikke-heltall-indekser tungvint, ofte krever omveier eller eksterne verktøy som awk eller sed.

Under panseret implementerer Bash assosiative tabeller ved hjelp av hashtabeller. Denne implementeringen gjør det mulig for effektiv nøkkeloppslag, som forblir ganske konstant uavhengig av array-størrelsen, en kritisk funksjon for ytelse i skriptutførelse.

Selv om assosiative tabeller i Bash bringer mye kraft og fleksibilitet til shell-skripting, kommer de med sitt eget sett med begrensninger, som å være noe klønete å arbeide med sammenlignet med tabeller i høyere nivå-språk som Python eller JavaScript. For komplekse datamanipulasjonsoppgaver kan det fortsatt være verdt å vurdere eksterne verktøy eller språk som er bedre egnet for jobben.

Men, for mange typiske skriptoppgaver, gir assosiative tabeller et verdifullt verktøy i Bash-programmererens verktøykasse, og muliggjør mer lesbare og vedlikeholdbare skript ved å tillate bruk av meningsfulle strengnøkler i stedet for numeriske indekser.