Estructuras repetitivas en ShellScript

Hola a todos, hoy os voy a enseñar como funcionan las estructuras repetitivas en shellscript.

Las estructuras repetitivas son fundamentales en el mundo de la programación y en shellscript no podría ser menos.

Se utilizan para ejecutar acciones x veces.

For

Esta estructura repetitiva es de las más usadas en shellscript.

Tenemos varias formas de implementar esta estructura repetitiva.

La más común es el de for in donde ponemos una variable y en el in algo que recorrer como un array o varias opciones.

Vamos a recorrer de 1 a 10, lo podemos hacer con el comando seq donde le podemos poner un inicio y fin.


#!/bin/bash

for i in `seq 1 10`
do
        echo $i
done

Este es el resultado:

También podemos recorrer cadenas:

#!/bin/bash

for i in "¡" "Hola" "mundo" "!"
do
        echo $i
done

Este es el resultado:

Para recorrer un array lo haríamos así:


#!/bin/bash

array=("¡" "Hola" "mundo" "!")
for i in "${array[@]}"
do
        echo $i
done


También lo podemos hacer como en otros lenguajes de programación.


#!/bin/bash

for ((i=1;i<=10;i++)) {
        echo $i
}

Este es el resultado:

While

Esta estructura repetitiva se ejecuta mientras que la condición dada es verdadera. Es importante que actualicemos el valor de la variable para que no se quede en un bucle infinito.


#!/bin/bash

i=1
while [ $i -le 10 ]
do
        echo $i
        i=$((i+1))
done

Este es el resultado:

Recordemos el tema de los operadores en shellscript.

OperadorSímbolo
-gt> (mayor que)
-ge>= (mayor o igual que)
-lt< (menor que)
-le<= (menor o igual que)
-eq= (igual)
-ne!= (distinto)

Until

Esta estructura repetitiva es igual que la anterior, pero con la diferencia de que se ejecuta mientras la condición no sea verdadera.

#!/bin/bash

i=1
until [ $i -gt 10 ]
do
        echo $i
        i=$((i+1))
done

Este es el resultado:

Espero que os sea de ayuda. Si tenéis dudas, preguntad. Estamos para ayudarte.

Compartir

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *