En este módulo, aprenderemos sobre los arrays y arrays asociativos en Bash. Los arrays son estructuras de datos que permiten almacenar múltiples valores en una sola variable. Los arrays asociativos, por otro lado, permiten almacenar pares clave-valor, lo que proporciona una forma más flexible de manejar datos.

  1. Arrays en Bash

1.1. Declaración de Arrays

En Bash, los arrays se pueden declarar de varias maneras:

# Declaración de un array vacío
my_array=()

# Declaración de un array con valores iniciales
my_array=(valor1 valor2 valor3)

1.2. Acceso a Elementos del Array

Para acceder a un elemento específico de un array, utilizamos la sintaxis ${array[indice]}:

# Acceder al primer elemento
echo ${my_array[0]}  # Salida: valor1

# Acceder al segundo elemento
echo ${my_array[1]}  # Salida: valor2

1.3. Añadir y Modificar Elementos

Podemos añadir o modificar elementos en un array especificando el índice:

# Añadir un nuevo elemento
my_array[3]="nuevo_valor"

# Modificar un elemento existente
my_array[1]="valor_modificado"

1.4. Longitud del Array

Para obtener la longitud de un array, utilizamos la sintaxis ${#array[@]}:

# Obtener la longitud del array
echo ${#my_array[@]}  # Salida: 4

1.5. Iterar sobre un Array

Podemos iterar sobre los elementos de un array utilizando un bucle for:

for elemento in "${my_array[@]}"; do
    echo $elemento
done

  1. Arrays Asociativos en Bash

2.1. Declaración de Arrays Asociativos

Los arrays asociativos se declaran utilizando la palabra clave declare -A:

# Declaración de un array asociativo vacío
declare -A my_assoc_array

# Declaración de un array asociativo con valores iniciales
declare -A my_assoc_array=([clave1]=valor1 [clave2]=valor2)

2.2. Acceso a Elementos del Array Asociativo

Para acceder a un elemento específico de un array asociativo, utilizamos la sintaxis ${array[clave]}:

# Acceder a un elemento
echo ${my_assoc_array[clave1]}  # Salida: valor1

2.3. Añadir y Modificar Elementos

Podemos añadir o modificar elementos en un array asociativo especificando la clave:

# Añadir un nuevo elemento
my_assoc_array[clave3]="nuevo_valor"

# Modificar un elemento existente
my_assoc_array[clave1]="valor_modificado"

2.4. Longitud del Array Asociativo

Para obtener la longitud de un array asociativo, utilizamos la sintaxis ${#array[@]}:

# Obtener la longitud del array asociativo
echo ${#my_assoc_array[@]}  # Salida: 3

2.5. Iterar sobre un Array Asociativo

Podemos iterar sobre los elementos de un array asociativo utilizando un bucle for:

for clave in "${!my_assoc_array[@]}"; do
    echo "Clave: $clave, Valor: ${my_assoc_array[$clave]}"
done

Ejercicios Prácticos

Ejercicio 1: Manipulación de Arrays

  1. Declara un array llamado frutas con los valores "manzana", "banana" y "cereza".
  2. Añade "durazno" al array.
  3. Modifica el segundo elemento del array para que sea "plátano".
  4. Imprime todos los elementos del array.

Solución:

# Declaración del array
frutas=("manzana" "banana" "cereza")

# Añadir un nuevo elemento
frutas[3]="durazno"

# Modificar un elemento existente
frutas[1]="plátano"

# Imprimir todos los elementos
for fruta in "${frutas[@]}"; do
    echo $fruta
done

Ejercicio 2: Manipulación de Arrays Asociativos

  1. Declara un array asociativo llamado capitales con las claves "España", "Francia" y "Italia" y sus respectivos valores "Madrid", "París" y "Roma".
  2. Añade la clave "Alemania" con el valor "Berlín".
  3. Modifica el valor de la clave "Italia" para que sea "Milán".
  4. Imprime todas las claves y valores del array asociativo.

Solución:

# Declaración del array asociativo
declare -A capitales=([España]="Madrid" [Francia]="París" [Italia]="Roma")

# Añadir un nuevo elemento
capitales[Alemania]="Berlín"

# Modificar un elemento existente
capitales[Italia]="Milán"

# Imprimir todas las claves y valores
for pais in "${!capitales[@]}"; do
    echo "País: $pais, Capital: ${capitales[$pais]}"
done

Conclusión

En esta sección, hemos aprendido sobre los arrays y arrays asociativos en Bash. Los arrays nos permiten almacenar múltiples valores en una sola variable, mientras que los arrays asociativos nos permiten manejar datos en pares clave-valor. Hemos cubierto cómo declarar, acceder, modificar y iterar sobre estos arrays, y hemos reforzado los conceptos con ejercicios prácticos. En el próximo módulo, exploraremos técnicas avanzadas de scripting en Bash.

© Copyright 2024. Todos los derechos reservados