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]}
:
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 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[@]}
:
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
- Declara un array anomenat
animals
amb 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 # fish
Exercici 2: Treballant amb Arrays Associatius
- Declara un array associatiu anomenat
book
amb 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: 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.
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