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

By rafaelaquino on 9/30/2023

Cordiales Saludos

![01_18_portada.png](Image from post)
![banner_bash.png](Image from post)

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](Image from post)

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](Image from post)
Ejecución del código ~~~ $ bash script_33.sh 'hola' 'chao' hola chao rafael@HP:~/ir_bash$ ~~~
![separador.png](Image from post)

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](Image from post)

Ejecución del Código

$ bash script_34.sh
1
2
3
4
5 
![separador_bash.png](Image from post)
#### 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](Image from post)

Ejecución del código

$ bash script_35.sh
Con numeros
1
2
3
Con palabras
Hola
Chao
![separador_bash.png](Image from post)
#### 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](Image from post)

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](Image from post)
#### 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](Image from post)

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](Image from post)
$ 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](Image from post)

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

Comments (2)

hivebuzz's avatar @hivebuzz 10/2/2023
[![](https://images.hive.blog/175x175/https://hivebuzz.me/api/level/rafaelaquino?202310020047)](https://hivebuzz.me/@rafaelaquino) **Congratulations @rafaelaquino**! You raised your level and are now a **Minnow**!

Check out our last posts:

Hive Power Up Month Challenge - September 2023 Winners List
Be ready for the October edition of the Hive Power Up Month!
Hive Power Up Day - October 1st 2023
stemsocial's avatar @stemsocial 10/2/2023

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.