Tablas Hash en Bash

Nilesh Katuwal 15 febrero 2024
  1. Declarar y agregar pares <clave, valor> en la variable del diccionario en Bash
  2. Recuperando pares <clave,valor> del diccionario en Bash
  3. Actualización de <clave,valor> en un diccionario en Bash
  4. Eliminar un par <clave,valor> del diccionario
  5. Iterando un diccionario en Bash en Bash
Tablas Hash en Bash

Un diccionario, también llamado hashmap o matriz asociativa, es una de las estructuras de datos más fundamentales en cualquier lenguaje de programación para almacenar una colección de cosas.

Un diccionario es una colección de claves, cada una de las cuales tiene un valor asociado. Puede insertar, recuperar o cambiar un valor en un diccionario utilizando la clave correspondiente.

Aunque Bash no es un lenguaje de programación de propósito general, admite de forma nativa hashmaps en las versiones cuatro y superiores.

Declarar y agregar pares <clave, valor> en la variable del diccionario en Bash

Las variables en Bash no están fuertemente tipadas, por lo que debe imponer un comportamiento similar al tipo indicando el atributo de una variable.

Para utilizar un diccionario en Bash, use la declaración declare con la opción -A, que significa matriz asociativa, para declarar una variable de diccionario.

$ declare -A dict

Ahora hemos declarado una variable llamada dict, que se puede usar como un diccionario. Para agregar pares <clave,valor> al diccionario, seguiremos la siguiente sintaxis:

$ name_of_dictionary[key]=value

Agreguemos pares <clave, valor> usando la sintaxis anterior.

$ dict[1]=Nil
$ dict[2]=Esh

Hemos añadido dos pares <clave, valor> donde las claves son 1 y 2 y los valores son Nil y Esh.

Recuperando pares <clave,valor> del diccionario en Bash

Para verificar los valores correspondientes en el diccionario con una clave, tenemos que agregar $ con llaves {} a la variable del diccionario que definimos.

$ echo ${dict[1]}

Producción :

Nil

Actualización de <clave,valor> en un diccionario en Bash

Para actualizar una <clave, valor> existente en el diccionario, debemos insertar una nueva <clave, valor> y sobrescribir el valor existente.

$ dict[1]=Nilesh

Si recuperamos el valor de la clave 1, entonces:

$ echo ${dict[1]}

Producción :

Nilesh

Como podemos ver, Nil de la tecla 1 se sobrescribe con Nilesh.

Eliminar un par <clave,valor> del diccionario

Usamos el comando unset para eliminar un par <clave, valor>.

$ unset dict[1]

El comando anterior eliminará el par <clave, valor> con la clave 1.

Iterando un diccionario en Bash en Bash

En Bash, podemos usar un bucle for para iterar un diccionario. Veamos un ejemplo:

#!/bin/bash
declare -A dict
dict[1]=Nil
dict[2]=Esh
for key in "${!dict[@]}"; do 
    echo "$key ${dict[$key]}" 
done

Reescribimos el comando anterior en un script y lo ejecutamos en una terminal Bash. "" se utiliza para manejar las teclas con espacios.

Producción:

salida del diccionario bash

Artículo relacionado - Bash Dictionary