Este método es un poco complejo. Este método discutirá una matriz especial de secuencias de comandos Bash denominada matriz asociativa.
Una matriz asociativa es una matriz especial que puede almacenar un valor de cadena como clave o índice. Es similar a los otros lenguajes de programación.
La sintaxis general para declarar una matriz asociativa es declare -A ArrayName
.
Nuestro ejemplo a continuación creará una matriz 2D que contiene cinco filas y seis columnas. A continuación se muestra el código de nuestro ejemplo.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
#!/bin/bash declare -A Array2D RowNum=5 ColumnNum=6 for ((i=1;i<=RowNum;i++)) do for ((j=1;j<=ColumnNum;j++)) do Array2D[$i,$j]=$RANDOM done done f1="%$((${#RowNum}+1))s" f2=" %9s" printf "$f1" '' for ((i=1;i<=RowNum;i++)) do printf "$f2" $i done echo for ((j=1;j<=ColumnNum;j++)) do printf "$f1" $j for ((i=1;i<=RowNum;i++)) do printf "$f2" ${Array2D[$i,$j]} done echo done |
En el ejemplo anterior, declaramos una matriz asociativa llamada Array2D
.
Después de eso, creamos dos variables y les asignamos un valor entero. Este valor entero especifica el número de filas y columnas.
Luego creamos un ciclo anidado que llenó la matriz con el número aleatorio.
Ahora hemos terminado de declarar y organizar la matriz. Es hora de ver cómo se ve nuestra matriz 2D.
Lo hacemos usando algunos bucles, como se ve en el código. Cuando ejecute el script anterior, verá un resultado como el siguiente.
1 2 3 4 5 6 7 |
1 2 3 4 5 1 16700 5241 2599 24330 1662 2 23264 19557 10425 13413 25606 3 17987 4199 13598 23897 26734 4 24420 27830 24855 8165 13531 5 15495 18790 13347 12947 11826 6 23458 22838 137 32454 32441 |