Bash:
Uso de matrices asociativas

Cómo hacerlo:

Primero, declare un arreglo asociativo en Bash:

declare -A my_array

Luego, puedes comenzar a poblarlo con valores, usando cadenas como claves:

my_array["name"]="Linux Journal"
my_array["topic"]="Programación"

Para acceder a un elemento, usa su clave:

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

Iterar sobre claves y valores también es sencillo:

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

La salida de muestra podría verse así:

name: Linux Journal
topic: Programación

Para agregar o modificar elementos, simplemente asigna un valor a una clave, de manera similar a como se pobló inicialmente:

my_array["readers"]="Tú"

Y para eliminar un elemento, usa unset:

unset my_array["topic"]

Análisis Profundo

Los arreglos asociativos fueron introducidos en la versión 4.0 de Bash, lo que los hace una adición relativamente reciente al lenguaje. Antes de su introducción, manejar arreglos con índices no enteros era engorroso, a menudo requiriendo soluciones alternativas o herramientas externas como awk o sed.

Por debajo, Bash implementa los arreglos asociativos usando tablas hash. Esta implementación permite una búsqueda de clave eficiente, que permanece bastante constante independientemente del tamaño del arreglo, una característica crítica para el rendimiento en la ejecución de scripts.

Aunque los arreglos asociativos en Bash aportan mucha potencia y flexibilidad a los scripts de shell, vienen con su propio conjunto de limitaciones, como ser algo más torpes de manejar en comparación con los arreglos en lenguajes de más alto nivel como Python o JavaScript. Para tareas de manipulación de datos complejas, podría seguir valiendo la pena considerar herramientas o lenguajes externos más adecuados para el trabajo.

Sin embargo, para muchas tareas de scripting típicas, los arreglos asociativos proporcionan una herramienta valiosa en el conjunto de herramientas del programador de Bash, permitiendo scripts más legibles y mantenibles al permitir el uso de claves de cadena significativas en lugar de índices numéricos.