Matriz asociativa Bash
- Matriz asociativa Bash
- Acceda a la matriz asociativa
- Agregar nuevos miembros a la matriz asociativa
- Eliminar un miembro de la matriz asociativa
Este tutorial demuestra cómo crear una matriz asociativa en Bash.
Matriz asociativa Bash
Las matrices pueden ser muy útiles en Bash para almacenar datos, y la matriz con un índice de cadena también se puede crear en Bash, lo que se denomina matriz asociativa. La matriz asociativa se agregó en Bash 4 y no se puede declarar en la versión anterior.
Primero, verifique la versión de Bash porque si la versión es menor a 4, entonces la matriz asociativa no se puede declarar. Usamos el comando declarar
para declarar una matriz asociativa.
Siga los pasos a continuación para declarar una matriz asociativa:
-
Primero, verifique la versión de Bash y ejecute el siguiente comando:
bash --version
El comando anterior comprobará la versión de Bash. La salida es:
GNU bash, version 5.0.17(1)-release (x86_64-pc-linux-gnu) Copyright (C) 2019 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
-
Ahora use el comando
declarar
para declarar una matriz asociativa:declare -A DemoArray DemoArray[One]=Delftstack1 DemoArray[Two]=Delftstack2 DemoArray[Three]=Delftstack3 DemoArray[Four]=Delftstack4 DemoArray[Five]=Delftstack5 DemoArray[Six]=Delftstack6
Los comandos anteriores declararán primero una matriz asociativa y luego asignarán índices y valores.
-
Además, hay otro comando donde podemos declarar una matriz asociativa en una línea:
declare -A DemoArray1=( [One]=Delftstack1 [Two]=Delftstack2 [Three]=Delftstack3 )
El comando anterior creará una matriz asociativa en una línea.
Acceda a la matriz asociativa
Podemos acceder a los elementos de la matriz asociativa individualmente o mediante una matriz. Podemos repetirlos directamente o poner la matriz en un bucle.
Vea los comandos para acceder a los valores individualmente:
echo ${DemoArray[One]}
echo ${DemoArray[Two]}
echo ${DemoArray[Three]}
echo ${DemoArray[Four]}
echo ${DemoArray[Five]}
echo ${DemoArray[Six]}
El comando anterior imprimirá los valores de la matriz asociativa en los índices dados. Ver la salida:
Delftstack1
Delftstack2
Delftstack3
Delftstack4
Delftstack5
Delftstack6
También podemos acceder a todos los valores de una matriz asociativa mediante un bucle. Ver el comando:
for ArrayKey in "${!DemoArray[@]}"; do echo $ArrayKey; done
echo "${!DemoArray[@]}"
Aquí !
se puede utilizar para leer las claves de una matriz asociativa. El primer comando imprimirá las claves de la matriz asociativa una por una, y el segundo comando imprimirá todas las claves a la vez.
Ver la salida:
Four
Six
One
Five
Two
Three Four Six One Five Two
Del mismo modo, para imprimir el valor, eliminaremos el !
operador de los comandos anteriores:
for ArrayValue in "${DemoArray[@]}"; do echo $ArrayValue; done
echo "${DemoArray[@]}"
Ahora, estos comandos imprimirán todos los valores de la matriz asociativa dada. Ver la salida:
Delftstack4
Delftstack6
Delftstack1
Delftstack5
Delftstack2
Delftstack3 Delftstack4 Delftstack6 Delftstack1 Delftstack5 Delftstack2
Finalmente, podemos imprimir las claves con valor usando el bucle for
. Ver el comando:
for ArrayKey in "${!DemoArray[@]}"; do echo "$ArrayKey => ${DemoArray[$ArrayKey]}"; done
El comando anterior imprime todos los pares clave-valor de la matriz dada. Ver la salida:
Three => Delftstack3
Four => Delftstack4
Six => Delftstack6
One => Delftstack1
Five => Delftstack5
Two => Delftstack2
Agregar nuevos miembros a la matriz asociativa
Agregar un nuevo elemento a una matriz asociativa es una operación muy sencilla. Usamos el operador de concatenación +=
entre la matriz y el nuevo par clave-valor.
Creamos un par clave-valor y luego lo asignamos a nuestra matriz asociativa. Ver el comando:
echo "${DemoArray[@]}"
DemoArray+=([Seven]=Delftstack7)
echo "${DemoArray[@]}"
El comando anterior imprimirá la matriz original, agregará un nuevo miembro y luego imprimirá la matriz modificada. Ver la salida
Delftstack3 Delftstack4 Delftstack6 Delftstack1 Delftstack5 Delftstack2
Delftstack3 Delftstack4 Delftstack7 Delftstack6 Delftstack1 Delftstack5 Delftstack2
Eliminar un miembro de la matriz asociativa
Eliminar un miembro de una matriz asociativa también es una operación sencilla. Usamos el comando unset
en el miembro de la matriz, que se eliminará de la matriz.
Ver los comandos.
echo "${DemoArray[@]}"
unset DemoArray[Seven]
echo "${DemoArray[@]}"
El comando anterior mostrará primero la matriz original, luego eliminará el miembro [Seven]
de la matriz y luego mostrará nuevamente la matriz modificada. Ver la salida:
Delftstack3 Delftstack4 Delftstack7 Delftstack6 Delftstack1 Delftstack5 Delftstack2
Delftstack3 Delftstack4 Delftstack6 Delftstack1 Delftstack5 Delftstack2
Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.
LinkedIn Facebook