Curso de Linux N18. Programación en Bash 005: for, for-in

Words
900
Reading
4 min
Listen
Play
3y

Cordiales Saludos

01_18_portada.png

banner_bash.png

Corresponde ahora tratar el tema de los Ciclos, en este caso comenzaremos con el ciclo for. Es un paso agigantado conocer esta estructura ya que nos permitirá tratar gran volumen de información en nuestros scripts y realizar muchos procesos repetitivos.

El for está enmarcado dentro de las Estructuras repetitivas, como lo escribí a continuación en mi curso de python para principiantes:

Estructuras Repetitivas. Son estructuras que nos permiten repetir una o más instrucciones en un determinado número de veces.
Se conocen como: bucle, ciclo, lazo o loop.
Las iteraciones son las repeticiones de las instrucciones internas del bucle.
Las iteracciones se realizaran mientras se cumpla una condición, hasta que se interrumpa o por medio de un evento... / ...Entramos en una nueva etapa donde tenemos una nueva estructura que podemos utilizar para la resolución de problemas. Los ciclos nos permiten trabajar con un gran número de valores, repetir una acción muchas veces y simplificar nuestro código. Fuente

También para entrar en contexto y profundizar el tema hago referencia de este tema en mi curso de Programación básica de python. Así tendremos una mayor comprensión de este tema.

Entramos a una nueva etapa, la cual se enmarca dentro de las estructuras repetitivas. Hoy comenzaremos con el ciclo for. Los ciclos son de suma importancia dentro de los lenguajes de programación porque nos permiten repetir instrucciones, secuencias de códigos, funciones, etc. para realizar o procesar parte de un programa de acuerdo a la finalidad que busquemos o que queramos implementar.La utilidad de los ciclos está en Repetir instrucciones; Revisar grandes cantidades de datos; mantener activos bloques de menú, funcionalidad de un juego, cálculos matemáticos de grandes cantidades de números, Trabajar con las listas y otras estructuras de datos, entre otras funciones. Fuente

Trataremos en esta ocasión las estructuras: For y For in

For

Con for podemos tomar los argumentos ingresados al script y tratarlos dentro del ciclo. Aquí en el siguiente ejercicio tan sólo mostramos los argumentos para ver el comportamiento del for. De más está decir que puede ser más complejo el tratamiento de los argumentos. En esta ocasión trabajamos con argumentos numéricos.

01_18_1.png

Ejecución del Código

$ bash script_32.sh 1 2 3 4 5 
1
2
3
4
5

A continuación este ejercicio es parecido al anterior, pero con la utilización de cadenas de caracteres, es decir palabras.


01_18_2.png

Ejecución del código

$ bash script_33.sh 'hola' 'chao' 
hola
chao
rafael@HP:~/ir_bash$ 

separador.png

For in

La estructura for in, se interpretaría de la siguiente manera. Para i que será la variable que realizará las iteraciones, en la estructura iterable, es decir la variable i irá iterando por cada uno de los elementos de la estructura iterable, por ejemplo una lista, una serie o un rango.

Iteración de listas

Aqui en el siguiente script se conjugan las Listas tratadas en publicación anterior y el ciclo for.


01_18_3.png

Ejecución del Código

$ bash script_34.sh
1
2
3
4
5 

separador_bash.png

For in

Serie de elementos

En esta ocasión la iteración la iteración se realiza con la serie de números y la serie de palabras.


01_18_4.png

Ejecución del código

$ bash script_35.sh
Con numeros
1
2
3
Con palabras
Hola
Chao

separador_bash.png

For in

Rango

También podemos utilizar la estructura for in con rangos. Con el siguiente ejercicio es fácil de comprender su funcionamiento.


01_18_5.png

Ejecución del código

$ bash script_36.sh
Rango del 1 al 4 - Ascendente
1
2
3
4
Rango del 4 al 1 - Descendente
4
3
2
1
Con incremento
2
4
6
8
10
De a..z
abcdefghijklmnopqrstuvwxyz 
De A..Z
ABCDEFGHIJKLMNOPQRSTUVWXYZ 

separador_bash.png

For in

Otros usos

En el siguiente ejercicio listaremos los archivos contenidos dentro de un directorio por medio de un for in. Para esta ocasión utilizaremos el comando (ls) pero mejorándolo ya que se puede tener el control de cada linea a mostrar.


01_18_6.png

Ejecución del código

$ bash script_37.sh
documento.txt hola.txt primero.sh README.md script_10.sh script_11.sh script_12a.sh script_12.sh script_13.sh script_14.sh script_15.sh script_16.sh script_17.sh script_18.sh script_19.sh script_1.sh script_20.sh script_21.sh script_22.sh script_23.sh script_24a.sh script_24.sh script_25.sh script_26.sh script_27.sh script_28.sh script_29.sh script_2.sh script_30.sh script_31.sh script_32.sh script_33.sh script_34.sh script_35.sh script_36.sh script_37.sh script_38.sh script_3.sh script_4.sh script_5.sh script_6.sh script_7.sh script_8.sh script_9.sh vacio.txt  

Veamos a continuación otra forma de mostrar o listar una serie de archivos.

01_18_7.png

$ bash script_38.sh 
script_10.sh script_11.sh script_12a.sh script_12.sh script_13.sh script_14.sh script_15.sh script_16.sh script_17.sh script_18.sh script_19.sh script_1.sh script_20.sh script_21.sh script_22.sh script_23.sh script_24a.sh script_24.sh script_25.sh script_26.sh script_27.sh script_28.sh script_29.sh script_2.sh script_30.sh script_31.sh script_32.sh script_33.sh script_34.sh script_35.sh script_36.sh script_37.sh script_38.sh script_3.sh script_4.sh script_5.sh script_6.sh script_7.sh script_8.sh script_9.sh  

Hasta aquí nuestra publicación, esto no termina aquí. En próxima publicación seguiremos avanzando con el ciclo for. Por ahora corresponde practicar mucho repasando todos los ejercicios de hoy.

separador.png

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.

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


Estos ejercicio y los anteriores los puedes encontrar en el repositorio del curso: https://gitlab.com/btcsiraquino/hp_bash_ejercicios


Mi Twitter

Curso de Linux N18. Programación en Bash 005: for, for-in | Ecency