Curso de Linux N15. Programación en Bash 002: Listas

Cordiales Saludos


00_15_portada.png


banner_bash.png

Listas
Las listas son colecciones de elementos que comparten características comunes. Con el nombre de la lista y su subíndice podemos acceder a cada elemento.

En el siguiente ejemplo declaramos una lista de nombre Palabras cuyos elementos son 'hola' 'saludos' y 'chao'. Donde podemos acceder a cualquiera de sus elementos con el subíndice. Tomemos en cuenta que las listas en la mayoría de los lenguajes de programación comienzan con el subíndice [0]. Por tanto el subindice [0] corresponde al primer elemento que en este caso es: 'hola'. Para declarar la lista o inicializarla usaremos la sintaxis: palabras=('Hola' 'saludos' 'chao') y para acceder al primer elemento usamos ${palabras[0]}.
Existen dos maneras muy generalizadas para mostrar toda la lista: ${palabras[@]} y ${palabras[*]}. Y para el número de elementos usaremos ${#palabras[@]}.
En la siguiente captura de pantalla tenemos una lista con elementos tipo string.


00_15_1.png

En la siguiente captura de pantalla realizamos en esta oportunidad una lista de 4 números. Siguiendo el formato del ejercicio anterior visualizamos todos sus elementos al igual que el número de elementos.


00_15_14.png

Utilizando la expansión con llaves, podemos tomar un rango de elementos y crear nuevas listas. En la siguiente captura declaramos con expansión con llaves, listamos todos los elementos con: ${list_1[@]}; el primer elemento con: ${list_1[0]} y por finalizar el último elemento con: ${list_1[-1]}. Se repite igual para los rangos: {a..z} y {A..Z}. Te invito a que realices el ejercicio con el rango: {A..z} desde la A mayúscula hasta la z minúscula.

00_15_15.png

Ejecución del código

rafael@HP:~/ir_bash$ bash script_15.sh 
Lista 1..5
Lista completa de 1..5:  1 2 3 4 5
Primer elemento de 1..5: 1
Último elemento de 1..5: 5
 
Lista a..z
Lista completa de a..z:  1 2 3 4 5
Primer Elemento de a..z: a
Último Elemento de a..z: z
 
Lista A..Z
Lista completa:  A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
Primer elemento de A..Z: A
Último Elemento de A..Z: Z
rafael@HP:~/ir_bash$ 

Para finalizar podemos observar como se agregan elementos al final: colores[${#colores[@]}+1]='Verde' y al comienzo de la lista: colores=("blanco" "${colores[@]}") ;modifican con: colores[0]="amarillo2" y eliminan elementos: unset colores[1]. Y por último como se elimina la lista de colores con unset colores


00_15_16.png

Ejecución del código

$ bash script_16.sh 
Colores
amarillo azul rojo
Número de elementos:  3
 
Agregando elemento al fina
amarillo azul rojo Verde
Otra forma Agregar al Final
amarillo azul rojo Verde Morado
Agregar elemento al comienzo
blanco amarillo azul rojo Verde Morado
Número de elementos:  6
 
Eliminando amarillo que esta en la posición 1
blanco azul rojo Verde Morado
Número de elementos:  5
 
Modificando: cambiar blanco por amarillo2
amarillo2 azul rojo Verde Morado
 
Eliminando toda la lista


rafael@HP:~/ir_bash$ 

Hasta aquí esta publicación. Te invito a practicar todo lo visto hoy. Y con un poco de creatividad puedes lograr algunos de los ejercicios con otra sintaxis.

IMPORTANTE: Los comando vistos aquí y en próximas publicaciones están limitados para mostrarlos y conceptualizarlos para nuestro quehacer diario. Cada comando tiene muchas opciones que debemos investigar por nuestra propia cuenta cuando estemos trabajando con ellos. Aprovechemos el internet para conocer en profundidad el comando que estemos estudiando y en primer orden no olvidemos lo potente y todo lo que nos brinda el comando man para conocer la sintaxis y todo lo relacionado con todos los comandos que tenemos en nuestro sistema sin recurrir a internet.


bannerfundamentos.png

Recordemos, que ya usamos en una publicación anterior el uso de rangos de elementos. Aquí el link de la publicación: https://peakd.com/hive-154226/@rafaelaquino/curso-terminal-de-linux-n05-less-tac-cat-man-info-bc-echo

$ echo {1..5}
1 2 3 4 5

$ echo {a..z}
a b c d e f g h i j k l m n o p q r s t u v w x y z

$ echo {A..Z}
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

$ echo {A..z}
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [  ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z

Todos a practicar, incluyéndome! Nos vemos en la próxima publicación...

Mi Twitter



0
0
0.000
1 comments
avatar

Thanks for your contribution to the STEMsocial community. Feel free to join us on discord to get to know the rest of us!

Please consider delegating to the @stemsocial account (85% of the curation rewards are returned).

You may also include @stemsocial as a beneficiary of the rewards of this post to get a stronger support. 
 

0
0
0.000