Comprensión de los arrays asociativos en Linux Bash con ejemplos

Comprensión de los arrays asociativos en Linux Bash con ejemplos

Los arrays en Linux Bash son una estructura de datos que permite almacenar múltiples valores bajo un solo nombre. En lugar de crear múltiples variables para cada valor, los arrays permiten hacer más eficiente el almacenamiento y manipulación de datos. El tipo más común de array en Bash es el array indexado, el cual utiliza números enteros como índices para acceder a los valores almacenados. Por otro lado, los arrays asociativos permiten utilizar strings o cadenas de caracteres como llaves para acceder a los valores. En este artículo, nos enfocaremos en comprender cómo funcionan los arrays asociativos en Bash y cómo utilizarlos en la programación.

📋 Aquí podrás encontrar✍
  1. Creación y utilización de arrays asociativos
  2. Recorriendo arrays asociativos
  3. Actualizando y borrando elementos del array asociativo
  4. Ejemplos de código
    1. Ejemplo 1: Almacenamiento y accceso de información de productos
    2. Ejemplo 2: Búsqueda de empleados por número de identificación
  5. Conclusión
  6. Preguntas frecuentes
    1. ¿Cuál es la principal diferencia entre un array indexado y un array asociativo?
    2. ¿Es posible utilizar strings de varias palabras como llaves en un array asociativo?
    3. ¿Puedo tener arrays asociativos anidados en Bash?

Creación y utilización de arrays asociativos

Para crear un array asociativo en Bash, se utiliza la sintaxis `declare -A nombre_array`. Por ejemplo, si queremos crear un array asociativo llamado `datos_personales`, lo hacemos de la siguiente manera:

declare -A datos_personales

Ahora, podemos asignar valores a cada uno de los elementos del array utilizando la sintaxis `nombre_array[llave]=valor`. Por ejemplo, para asignar el valor "Juan" a la llave "nombre", lo hacemos así:

datos_personales[nombre]="Juan"

Podemos acceder al valor de cada elemento utilizando la sintaxis `nombre_array[llave]`. Por ejemplo, para imprimir el valor de la llave "nombre", lo hacemos así:

echo ${datos_personales[nombre]}

Este comando imprimirá el valor "Juan".

Recorriendo arrays asociativos

Para recorrer todos los elementos de un array asociativo, se utiliza la sintaxis `for llave in "${!nombre_array[@]}"`. Por ejemplo, para recorrer todos los elementos del array `datos_personales`, lo hacemos así:

for llave in "${!datos_personales[@]}"
do
  echo "${llave}: ${datos_personales[${llave}]}"
done

Este comando imprimirá cada una de las llaves y sus respectivos valores en el array.

Actualizando y borrando elementos del array asociativo

Para modificar el valor de un elemento en un array asociativo, simplemente se asigna un nuevo valor a la llave. Por ejemplo, si queremos cambiar el nombre "Juan" por "Pedro", lo hacemos así:

datos_personales[nombre]="Pedro"

Para borrar un elemento en un array asociativo, se utiliza la sintaxis `unset nombre_array[llave]`. Por ejemplo, para borrar el elemento con la llave "nombre", lo hacemos así:

unset datos_personales[nombre]

Ejemplos de código

Aquí presentamos algunos ejemplos de código utilizando arrays asociativos en Bash:

Ejemplo 1: Almacenamiento y accceso de información de productos


declare -A productos

productos[nombre]="Televisor Samsung"
productos[precio]="20000"
productos[categoria]="Electrónica"

echo "Información del producto:"
echo "Nombre: ${productos[nombre]}"
echo "Precio: ${productos[precio]}"
echo "Categoría: ${productos[categoria]}"

Este código crea un array asociativo llamado `productos`, y asigna valores a tres llaves: `nombre`, `precio` y `categoria`. Luego, imprime la información del producto almacenada en el array.

Ejemplo 2: Búsqueda de empleados por número de identificación


declare -A empleados

empleados[12345]="Juan Perez"
empleados[67890]="Pedro Rodriguez"
empleados[24680]="Maria Garcia"

echo "Ingrese número de identificación del empleado:"
read id

if [ "${empleados[$id]}" ]
then
echo "Nombre del empleado: ${empleados[$id]}"
else
echo "No se encontró el empleado con el ID proporcionado."
fi

Este código crea un array asociativo llamado `empleados`, y asigna valores a tres llaves, cada una con el número de identificación de un empleado y su respectivo nombre. Luego, pregunta al usuario por el número de identificación del empleado y busca en el array la llave correspondiente. Si encuentra el empleado, imprime su nombre, de lo contrario, muestra un mensaje de error.

Conclusión

Los arrays asociativos en Bash son una herramienta muy útil en la programación, ya que permiten almacenar y manipular múltiples valores utilizando cadenas de caracteres como llaves. Aunque su sintaxis puede parecer un poco más compleja que la de los arrays indexados, su uso puede hacer más eficiente el manejo de datos en un programa. Esperamos que este artículo haya sido de ayuda para comprender mejor el funcionamiento de los arrays asociativos en Bash.

Preguntas frecuentes

¿Cuál es la principal diferencia entre un array indexado y un array asociativo?

La principal diferencia entre un array indexado y un array asociativo es la forma en que se accede a los valores almacenados. En un array indexado, los valores se acceden utilizando números enteros como índices, mientras que en un array asociativo, se utilizan cadenas de caracteres como llaves.

¿Es posible utilizar strings de varias palabras como llaves en un array asociativo?

Sí, es posible utilizar strings de varias palabras como llaves en un array asociativo. Para hacerlo, simplemente se encierra la llave entre comillas dobles al asignar valores o acceder a ellos.

¿Puedo tener arrays asociativos anidados en Bash?

Sí, es posible tener arrays asociativos anidados en Bash. Es decir, se puede tener un array asociativo cuyo valor es otro array asociativo. Para acceder a los elementos del array interno, se utiliza la sintaxis `nombre_array[llave1][llave2]`.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir