logo

Declaraciones en bucle | Guión de shell

Declaraciones de bucle en secuencias de comandos de Shell: Hay un total de 3 declaraciones de bucle que se pueden usar en la programación bash

Tabla de contenidos



Para alterar el flujo de las declaraciones de bucle, se utilizan dos comandos:

  1. romper
  2. continuar

Sus descripciones y sintaxis son las siguientes:

Declaración `` while` en Shell Script en Linux

Aquí el comando se evalúa y, en función del bucle resultante, se ejecutará; si el comando se eleva a falso, el bucle finalizará eso.



#/bin/bash while  do       done>

Implementación del bucle `While` en Shell Script.

Primero, creamos un archivo usando un editor de texto en Linux. En este caso, estamos usando el editor `vim`.

vim looping.sh>

Puede reemplazar looping.sh con el nombre deseado.

Luego hacemos que nuestro script sea ejecutable usando el comando `chmod` en Linux.



chmod +x looping.sh>

#/bin/bash

a=0

cadena.valorde

# Es menor que el operador

#Iterar el ciclo hasta menos de 10

mientras [ $a -lt 10 ]
hacer
# Imprimir los valores
echo $a
# incrementar el valor
a=`expr $a + 1`
hecho

Producción:

Mientras bucle en Linux

Mientras bucle en Linux

Explicación:

  • #/bin/bash> : Especifica que el script debe interpretarse utilizando el shell Bash.
  • a=0> : Inicializa una variablea>con el valor 0.
  • while [ $a -lt 10 ]> : Inicia un bucle while que continúa mientras el valora>es menor que 10.
  • do> : Marca el comienzo del cuerpo del bucle.
  • echo $a> : Imprime el valor actual dea>la consola.
  • a=> expresión $a + 1 : Incrementa el valor dea>por 1. Elexpr>El comando se utiliza para expresiones aritméticas.
  • done> : Marca el final del bucle.

Declaración `para` en Shell Script en Linux

El bucle for opera en listas de elementos. Repite un conjunto de comandos para cada elemento de una lista.
Aquí var es el nombre de una variable y palabra1 a palabraN son secuencias de caracteres separados por espacios (palabras). Cada vez que se ejecuta el bucle for, el valor de la variable var se establece en la siguiente palabra de la lista de palabras, de palabra1 a palabraN.

Sintaxis:

#/bin/bash for in  do       done>

Implementación de bucle `for` con declaración `break` en Shell Script.

Primero, creamos un archivo usando un editor de texto en Linux. En este caso, estamos usando el editor `vim`.

vim for.sh>

Puede reemplazar for.sh con el nombre deseado.

Luego hacemos que nuestro script sea ejecutable usando el comando `chmod` en Linux.

chmod +x for.sh>

#/bin/bash

#Inicio del bucle for

para una en 1 2 3 4 5 6 7 8 9 10
hacer

# si a es igual a 5 rompe el bucle
si [ $a == 5 ]
entonces
romper
ser

# Imprime el valor
echo Iteration no $a
hecho

Producción:

Romper declaración en for Loop en Linux

Romper declaración en for Loop en Linux

Explicación:

  • #/bin/bash>: Especifica que el script debe interpretarse utilizando el shell Bash.
  • for a in 1 2 3 4 5 6 7 8 9 10>: Inicia un bucle for que itera sobre los valores del 1 al 10, asignando cada valor a la variablea>en cada iteración.
  • do>: Marca el comienzo del cuerpo del bucle.
  • if [ $a == 5 ]>: Comprueba si el valor actuala>es igual a 5.
    • then>: Marca el comienzo del bloque condicional que se ejecutará si la condición es verdadera.
      • break>: Sale del bucle si la condición es verdadera.
    • fi>: Marca el final del bloque condicional.
  • echo 'Iteration no $a'>: Imprime un mensaje indicando el número de iteración actual.
  • done>: Marca el final del bucle.

El script configura un bucle for que itera sobre los valores del 1 al 10. Durante cada iteración, comprueba si el valora>es igual a 5. Si es así, se sale del bucle utilizando elbreak>declaración. De lo contrario, imprime un mensaje indicando el número de iteración actual. El ciclo continúa hasta que completa todas las iteraciones o hasta que encuentra una declaración de interrupción.

Implementación del bucle `for` con declaración `continue` en Shell Script.

Primero, creamos un archivo usando un editor de texto en Linux. En este caso, estamos usando el editor `vim`.

vim for_continue.sh>

Puede reemplazar for_continue.sh con el nombre deseado.

Luego hacemos que nuestro script sea ejecutable usando el comando `chmod` en Linux.

chmod +x for_continue.sh>

#/bin/bash

comando en el nodo js

para una en 1 2 3 4 5 6 7 8 9 10
hacer

# si a = 5 entonces continúa el ciclo y
# no pasar a la línea 8

si [ $a == 5 ]
entonces
continuar
ser
echo Iteration no $a
hecho

Producción:

continuar declaración en bucle for en Linux

continuar declaración en bucle for en Linux

Explicación:

  • #/bin/bash> : Especifica que el script debe interpretarse utilizando el shell Bash.
  • for a in 1 2 3 4 5 6 7 8 9 10> : Inicia un bucle for que itera sobre los valores del 1 al 10, asignando cada valor a la variablea>en cada iteración.
  • do> : Marca el comienzo del cuerpo del bucle.
  • if [ $a == 5 ]> : Comprueba si el valor actuala>es igual a 5.
    • then> : Marca el comienzo del bloque condicional que se ejecutará si la condición es verdadera.
      • continue> : omite el resto del cuerpo del bucle y pasa a la siguiente iteración si la condición es verdadera.
    • fi> : Marca el final del bloque condicional.
  • echo 'Iteration no $a'> : Imprime un mensaje indicando el número de iteración actual. Esta línea se omite sia>es igual a 5 debido a lacontinue>declaración.
  • done> : Marca el final del bucle.

El script configura un bucle for que itera sobre los valores del 1 al 10. Durante cada iteración, comprueba si el valora>es igual a 5. Si es así, el ciclo continúa con la siguiente iteración sin ejecutar las instrucciones restantes en el cuerpo del ciclo. De lo contrario, imprime un mensaje indicando el número de iteración actual. El ciclo continúa hasta completar todas las iteraciones.

Declaración `hasta` en Shell Script en Linux

El bucle hasta se ejecuta tantas veces como la condición/comando se evalúe como falso. El bucle termina cuando la condición/comando se vuelve verdadera.

Sintaxis:

#/bin/bash until  do       done>

Implementación del bucle `hasta` en Shell Script

Primero, creamos un archivo usando un editor de texto en Linux. En este caso, estamos usando el editor `vim`.

vim until.sh>

Puedes reemplazar hasta. sh con el nombre deseado.

Luego hacemos que nuestro script sea ejecutable usando el comando `chmod` en Linux.

chmod +x until.sh>

#/bin/bash

a=0

# -gt es mayor que el operador
#Iterar el ciclo hasta que a sea mayor que 10

hasta [ $a -gt 10 ]
hacer

# Imprimir los valores
echo $a

# incrementar el valor
a=`expr $a + 1`
hecho

Producción:

Bucle unitario en Linux

Hasta bucle en Linux

Explicación:

  • #/bin/bash> : Especifica que el script debe interpretarse utilizando el shell Bash.
  • a=0> : Inicializa una variablea>con el valor 0.
  • until [ $a -gt 10 ]> : Inicia un bucle hasta que continúa mientras el valora>no es mayor que 10.
  • do> : Marca el comienzo del cuerpo del bucle.
  • echo $a> : Imprime el valor actual dea>la consola.
  • a=> expresión $a + 1 : Incrementa el valor dea>por 1. Elexpr>El comando se utiliza para expresiones aritméticas.
  • done> : Marca el final del bucle.

Nota: Los scripts de Shell son un lenguaje que distingue entre mayúsculas y minúsculas, lo que significa que se debe seguir la sintaxis adecuada al escribir los scripts.

Ejemplos de declaraciones en bucle

1. Iterando sobre colores usando un bucle For

Primero, creamos un archivo usando un editor de texto en Linux. En este caso, estamos usando el editor `vim`.

vim color.sh>

Puede reemplazar color.sh con el nombre deseado.

Luego hacemos que nuestro script sea ejecutable usando el comando `chmod` en Linux.

chmod +x color.sh>

#/bin/bash

COLORES=rojo verde azul

# el bucle for continúa hasta que lee todos los valores de COLORES

para COLOR en $COLORS
hacer
eco COLOR: $COLOR
hecho

Producción:

Hasta en Linux

Hasta en Linux

Explicación:

conjunto vs mapa
  • Inicialización de colores:
    • COLORS='red green blue'>: Inicializa una variable denominadaCOLORS>con una lista de valores de color separados por espacios (rojo, verde y azul).
  • Para iteración de bucle:
    • for COLOR in $COLORS>: Inicia un bucle for que itera sobre cada valor en elCOLORS>variable.
      • Cuerpo del bucle:
        • echo 'COLOR: $COLOR'>: Imprime un mensaje para cada color, mostrando el valor del color actual.
    • El ciclo continúa hasta que procesa todos los valores presentes en elCOLORS>variable.

Este ejemplo demuestra un bucle for simple en Bash, iterando sobre una lista de colores almacenados en elCOLORS>variable. El bucle imprime un mensaje para cada color, indicando el color actual que se está procesando. El bucle se repite hasta que se agotan todos los valores de color.

2. Creando un bucle infinito con while true en script de shell

Primero creamos un archivo usando un editor de texto en Linux. En este caso estamos usando el editor `vim`.

vim infinite.sh>

Puede reemplazar infinita.sh con el nombre deseado.

Luego hacemos que nuestro script sea ejecutable usando el comando `chmod` en Linux.

chmod +x infinite.sh>

#/bin/bash

si bien es cierto
hacer

# Comando a ejecutar
# dormir 1 indica que duerme durante 1 segundo
eco Hola, soy bucle infinito
dormir 1
hecho

Producción:

bucle infinito en linux

bucle infinito en linux

Explicación:

tamaños de fuente de látex

Estructura de bucle infinito:

  • while true>: Inicia un bucle while que continúa indefinidamente como condicióntrue>siempre es cierto.
    • Cuerpo del bucle:
      • echo 'Hi, I am infinity loop'>: Imprime un mensaje indicando que el script está en un bucle infinito.
      • sleep 1>: Pausa la ejecución del bucle durante 1 segundo antes de la siguiente iteración.
  • El bucle continúa indefinidamente, ejecutando los comandos dentro de su cuerpo repetidamente.

Este ejemplo muestra la creación de un bucle infinito usando la construcción while true en Bash. El bucle imprime continuamente un mensaje que indica su estado como bucle infinito e incluye un comando de suspensión 1, lo que provoca un retraso de un segundo entre iteraciones. Los bucles infinitos se utilizan a menudo para procesos que deben ejecutarse continuamente hasta que se interrumpen manualmente.

3. Bucle interactivo de confirmación de nombre

Primero creamos un archivo usando un editor de texto en Linux. En este caso estamos usando el editor `vim`.

vim name.sh>

Puede reemplazar name.sh con el nombre deseado.

Luego hacemos que nuestro script sea ejecutable usando el comando `chmod` en Linux.

chmod +x name.sh>

#/bin/bash

CORRECTO=n
mientras [ $CORRECTO == n ]
hacer

# el bucle se interrumpe cuando ingresas y, es decir, cuando tu nombre es correcto
# -p significa mensaje que solicita la entrada

leer -p Introduce tu nombre: NOMBRE
leer -p ¿${NAME} es correcto? CORRECTO
hecho

Producción:

Script interactivo en Linux

Script interactivo en Linux

Explicación:

  • Inicialización:
    • CORRECT=n>: Inicializa una variable denominadaCORRECT>con el valor n. Esta variable se utiliza para controlar el bucle.
  • Bucle interactivo:
    • while [ '$CORRECT' == 'n' ]>: Inicia un ciclo while que continúa mientras el valor deCORRECT>es igual a n.
      • Cuerpo del bucle:
        • read -p 'Enter your name:' NAME>: Solicita al usuario que ingrese su nombre y almacena la entrada en elNAME>variable.
        • read -p 'Is ${NAME} correct? ' CORRECT>: Solicita al usuario que confirme si el nombre ingresado es correcto y actualiza elCORRECT>variable en consecuencia.
    • El bucle continúa hasta que el usuario ingresa y (que indica el nombre correcto).

Este ejemplo muestra un bucle interactivo que solicita al usuario que ingrese su nombre y luego solicita confirmación. El bucle continúa hasta que el usuario confirma que el nombre ingresado es correcto ingresando y. El bucle utiliza el ` read> `>comando para la entrada del usuario y actualiza el ` CORRECT> `>variable para controlar el flujo del bucle.

Conclusión

En este artículo analizamos las declaraciones de bucle en las secuencias de comandos Bash, cubriendowhile>,for>, yuntil>bucles. Introduce el uso debreak>ycontinue>declaraciones para modificar el comportamiento del bucle. Ejemplos prácticos ilustran la implementación de bucles, incluida la iteración sobre valores de color, la creación de bucles infinitos y la construcción de un bucle interactivo para la validación de la entrada del usuario. La guía ofrece un recurso conciso pero informativo para comprender y utilizar construcciones de bucle en secuencias de comandos Bash.