En aquest tema, aprendrem a treballar amb arrays i arrays associatius en Bash. Els arrays són una estructura de dades fonamental que permet emmagatzemar múltiples valors en una sola variable. Els arrays associatius, per altra banda, permeten emmagatzemar valors associats a claus específiques, similar a un diccionari en altres llenguatges de programació.

Contingut

Introducció als Arrays

Un array en Bash és una col·lecció de valors indexats per nombres enters. Els arrays són útils per emmagatzemar llistes de dades relacionades.

Exemple Bàsic d'Array

# Declaració d'un array
fruits=("apple" "banana" "cherry")

# Accés a elements de l'array
echo ${fruits[0]}  # Output: apple
echo ${fruits[1]}  # Output: banana
echo ${fruits[2]}  # Output: cherry

Creació i Accés a Elements d'un Array

Declaració d'Arrays

Hi ha diverses maneres de declarar arrays en Bash:

# Declaració d'un array amb valors inicials
numbers=(1 2 3 4 5)

# Declaració d'un array buit
empty_array=()

# Afegir elements a un array existent
numbers[5]=6

Accés a Elements

Per accedir a un element específic d'un array, utilitzem la sintaxi ${array[index]}:

echo ${numbers[0]}  # Output: 1
echo ${numbers[5]}  # Output: 6

Longitud de l'Array

Per obtenir la longitud d'un array, utilitzem ${#array[@]}:

echo ${#numbers[@]}  # Output: 6

Operacions amb Arrays

Iteració sobre un Array

Podem utilitzar un bucle for per iterar sobre els elements d'un array:

for fruit in "${fruits[@]}"; do
    echo $fruit
done
# Output:
# apple
# banana
# cherry

Afegir i Eliminar Elements

Podem afegir elements a un array assignant valors a nous índexs i eliminar elements assignant-los valors buits:

# Afegir un element
fruits[3]="date"

# Eliminar un element
unset fruits[1]

# Verificar el contingut de l'array
echo ${fruits[@]}  # Output: apple cherry date

Introducció als Arrays Associatius

Els arrays associatius permeten emmagatzemar valors associats a claus específiques. Això és útil quan necessitem una relació clau-valor.

Exemple Bàsic d'Array Associatiu

# Declaració d'un array associatiu
declare -A person

# Assignació de valors
person[name]="John"
person[age]=30
person[city]="New York"

# Accés a elements
echo ${person[name]}  # Output: John
echo ${person[age]}   # Output: 30
echo ${person[city]}  # Output: New York

Creació i Accés a Elements d'un Array Associatiu

Declaració d'Arrays Associatius

Per declarar un array associatiu, utilitzem declare -A:

declare -A colors

# Assignació de valors
colors[red]="#FF0000"
colors[green]="#00FF00"
colors[blue]="#0000FF"

Accés a Elements

Per accedir a un element específic d'un array associatiu, utilitzem la sintaxi ${array[key]}:

echo ${colors[red]}    # Output: #FF0000
echo ${colors[green]}  # Output: #00FF00
echo ${colors[blue]}   # Output: #0000FF

Longitud de l'Array Associatiu

Per obtenir la longitud d'un array associatiu, utilitzem ${#array[@]}:

echo ${#colors[@]}  # Output: 3

Operacions amb Arrays Associatius

Iteració sobre un Array Associatiu

Podem utilitzar un bucle for per iterar sobre les claus d'un array associatiu:

for key in "${!colors[@]}"; do
    echo "$key: ${colors[$key]}"
done
# Output:
# red: #FF0000
# green: #00FF00
# blue: #0000FF

Afegir i Eliminar Elements

Podem afegir elements a un array associatiu assignant valors a noves claus i eliminar elements utilitzant unset:

# Afegir un element
colors[yellow]="#FFFF00"

# Eliminar un element
unset colors[blue]

# Verificar el contingut de l'array
for key in "${!colors[@]}"; do
    echo "$key: ${colors[$key]}"
done
# Output:
# red: #FF0000
# green: #00FF00
# yellow: #FFFF00

Exercicis Pràctics

Exercici 1: Treballant amb Arrays

  1. Declara un array anomenat animals amb els valors "cat", "dog", "bird".
  2. Afegeix "fish" a l'array.
  3. Elimina "dog" de l'array.
  4. Itera sobre l'array i imprimeix cada element.

Solució

# Declaració de l'array
animals=("cat" "dog" "bird")

# Afegir un element
animals[3]="fish"

# Eliminar un element
unset animals[1]

# Iterar sobre l'array
for animal in "${animals[@]}"; do
    echo $animal
done
# Output:
# cat
# bird
# fish

Exercici 2: Treballant amb Arrays Associatius

  1. Declara un array associatiu anomenat book amb les claus "title", "author", "year".
  2. Assigna valors a les claus: "1984", "George Orwell", "1949".
  3. Afegeix una nova clau "genre" amb el valor "Dystopian".
  4. Itera sobre l'array associatiu i imprimeix cada clau i valor.

Solució

# Declaració de l'array associatiu
declare -A book

# Assignació de valors
book[title]="1984"
book[author]="George Orwell"
book[year]=1949

# Afegir una nova clau
book[genre]="Dystopian"

# Iterar sobre l'array associatiu
for key in "${!book[@]}"; do
    echo "$key: ${book[$key]}"
done
# Output:
# title: 1984
# author: George Orwell
# year: 1949
# genre: Dystopian

Conclusió

En aquest tema, hem après a treballar amb arrays i arrays associatius en Bash. Hem vist com declarar, accedir i manipular elements en aquests arrays, així com iterar sobre ells. Els exercicis pràctics ens han ajudat a consolidar aquests conceptes. En el proper tema, explorarem la manipulació de cadenes en Bash.

© Copyright 2024. Tots els drets reservats