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: cherryCreació 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]}:
Longitud de l'Array
Per obtenir la longitud d'un array, utilitzem ${#array[@]}:
Operacions amb Arrays
Iteració sobre un Array
Podem utilitzar un bucle for per iterar sobre els elements d'un array:
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 dateIntroducció 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 YorkCreació 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: #0000FFLongitud de l'Array Associatiu
Per obtenir la longitud d'un array associatiu, utilitzem ${#array[@]}:
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: #0000FFAfegir 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: #FFFF00Exercicis Pràctics
Exercici 1: Treballant amb Arrays
- Declara un array anomenat
animalsamb els valors "cat", "dog", "bird". - Afegeix "fish" a l'array.
- Elimina "dog" de l'array.
- 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
# fishExercici 2: Treballant amb Arrays Associatius
- Declara un array associatiu anomenat
bookamb les claus "title", "author", "year". - Assigna valors a les claus: "1984", "George Orwell", "1949".
- Afegeix una nova clau "genre" amb el valor "Dystopian".
- 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: DystopianConclusió
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.
Curs de Programació en Bash
Mòdul 1: Introducció a Bash
- Què és Bash?
- Configuració del teu Entorn
- Navegació Bàsica per la Línia de Comandes
- Entenent la Shell
Mòdul 2: Comandes Bàsiques de Bash
- Operacions amb Fitxers i Directoris
- Comandes de Processament de Text
- Permisos i Propietat de Fitxers
- Redirecció i Piping
Mòdul 3: Conceptes Bàsics de Scripting
Mòdul 4: Scripting Intermedi
Mòdul 5: Tècniques Avançades de Scripting
- Operacions Avançades amb Fitxers
- Gestió de Processos
- Gestió d'Errors i Depuració
- Expressions Regulars
Mòdul 6: Treballant amb Eines Externes
Mòdul 7: Automatització i Programació
- Treballs Cron
- Automatització de Tasques
- Scripts de Còpia de Seguretat i Restauració
- Monitorització i Registre
Mòdul 8: Millors Pràctiques i Optimització
- Escriure Codi Llegible
- Optimització de Scripts en Bash
- Consideracions de Seguretat
- Control de Versions amb Git
