Dominar el flujo de control de bash con descanso y continuar

Dominar el flujo de control de bash con descanso y continuar

Bash es un poderoso lenguaje de secuencias de comandos que se usa comúnmente para las tareas de automatización y administración del sistema. Uno de los conceptos más importantes en las secuencias de comandos bash es el flujo de control, que se refiere a la forma en que el script ejecuta diferentes comandos basados ​​en diversas condiciones. Dos declaraciones de flujo de control clave en Bash son romper y continuar, lo que puede ayudarlo a controlar la ejecución de su código y hacerlo más eficiente.

¿Qué son las roturas y continúan en Bash??

Romper y continuar son dos declaraciones de flujo de control de bash que se pueden usar para alterar el flujo de una declaración de bucle o interruptor. Le permiten salir de un bucle o omitir ciertas iteraciones basadas en condiciones específicas.

Aquí hay una breve descripción de cómo Break y continúan funcionando en Bash:

  • romper: Cuando se usa dentro de una instrucción de bucle o interruptor, Break saldrá inmediatamente de la instrucción Loop o Switch y continuará ejecutando el script desde el siguiente comando después de la instrucción Loop o Switch.
  • continuar: Cuando se usa dentro de un bucle, continúa omitir la iteración actual y pasar a la siguiente iteración. En otras palabras, le permite omitir ciertas iteraciones basadas en condiciones específicas.
  • Tanto Break como continúan pueden ser útiles para mejorar la eficiencia de sus scripts bash, ya que le permiten controlar la ejecución de su código y evitar iteraciones innecesarias.

    Usando Break in Bash

    Comencemos por mirar cómo usar Break in Bash. La ruptura se usa comúnmente en bucles y declaraciones de interruptor para salir inmediatamente de la declaración de bucle o interruptor cuando se cumple una determinada condición.

    Aquí hay un ejemplo de cómo usar el descanso en un bucle:

    #!/bin/bash para i en 1 ... 10 do si [$ i -eq 5] Entonces rompa fi echo $ I Hice Echo "Loop completo"
    12345678910111213#!/bin/bash para i en 1 ... 10 do si [$ i -eq 5] luego rompa fi echo $ idone echo "bucle completo"

    En este ejemplo, tenemos un bucle for que iterará sobre los valores de I de 1 a 10. Sin embargo, hemos agregado una declaración IF que verifica si es igual a 5. Si soy igual a 5, usaremos la instrucción Break para salir inmediatamente del bucle.

    Si ejecutamos este script, veremos la siguiente salida:

    Salida 1 2 3 4 bucle completo 

    Como puede ver, el bucle solo iteró hasta 4 antes de salir debido a la declaración de descanso.

    Usando continuar en Bash

    A continuación, veamos cómo usar continuar en Bash. Continuar se usa en bucles para omitir ciertas iteraciones basadas en condiciones específicas.

    Aquí hay un ejemplo de cómo usar continuar en un bucle:

    #!/bin/bash para i en 1 ... 10 do si [$ i -eq 5] Entonces continúe fi -eco $ i hice echo "bucle completo"
    12345678910111213#!/bin/bash para i en 1 ... 10 do si [$ i -eq 5] Entonces continúe fi echo $ idone echo "bucle completo"

    En este ejemplo, tenemos un bucle for que iterará sobre los valores de I de 1 a 10. Sin embargo, hemos agregado una declaración IF que verifica si es igual a 5. Si soy igual a 5, utilizaremos la instrucción Continuar para omitir esa iteración y pasar a la siguiente iteración.

    Si ejecutamos este script, veremos la siguiente salida:

    Salida 1 2 3 4 6 7 8 9 10 bucle completo 

    Como puede ver, el bucle omitió la iteración donde 'yo' era igual a 5 y continuó con el resto de las iteraciones.

    Usar Break y Continuar en las declaraciones de Switch

    Además de los bucles, Break and Contining también se puede usar en declaraciones de interruptor en Bash.

    Aquí hay un ejemplo de cómo usar el descanso en una declaración de interruptor:

    #!/bin/bash caso $ 1 en el inicio) echo "servicio de inicio" ;; parar) echo "servicio de parada" ;; reiniciar) echo "servicio de reinicio" ;; *) echo de "opción inválida" ruptura ;; ESAC ECHO "Declaración de conmutación completa"
    12345678910111213141516171819202122#!/bin/bash caso $ 1 en el inicio) echo "servicio de inicio" ;; parar) echo "servicio de parada" ;; reiniciar) echo "servicio de reinicio" ;; *) echo "opción inválida" ruptura ;; esac echo "Declaración de conmutación completa"

    En este ejemplo, tenemos una instrucción Switch que verificará el valor del primer argumento de la línea de comandos ($ 1). Si $ 1 es igual a "inicio", "parar" o "reiniciar", ejecutará el comando correspondiente. Si $ 1 no es igual a ninguno de estos valores, emitirá un mensaje de error y usará la instrucción Break para salir de la instrucción Switch.

    Si ejecutamos este script con el comando ./MyScript.SH Inválido, veremos la siguiente salida:

    Salida de opción no válida Declaración de interruptor completa 

    Como puede ver, el script genera el mensaje de error y luego sale de la instrucción Switch usando la instrucción Break.

    Aquí hay un ejemplo de cómo usar continuar en una instrucción Switch:

    #!/bin/bash caso $ 1 en el inicio) echo "servicio de inicio" ;; parar) echo "servicio de parada" ;; reiniciar) echo "servicio de reinicio" ;; *) continuar ;; ESAC ECHO "Declaración de conmutación completa"
    123456789101112131415161718192021#!/bin/bash caso $ 1 en el inicio) echo "servicio de inicio" ;; parar) echo "servicio de parada" ;; reiniciar) echo "servicio de reinicio" ;; *) continuar ;; esac echo "Declaración de conmutación completa"

    En este ejemplo, hemos modificado el script anterior para usar la instrucción continuar en lugar de romper. Si $ 1 no es igual a ninguno de los valores esperados, el script simplemente omitirá esa iteración de la instrucción Switch y pasará a la siguiente iteración.

    Si ejecutamos este script con el comando ./MyScript.SH Inválido, veremos la siguiente salida:

    Declaración de interruptor de salida completa 

    Como puede ver, el guión simplemente se saltó la iteración donde $ 1 no era válido y continuó con el resto del guión.

    Conclusión

    En este tutorial, hemos cubierto los conceptos básicos del uso de Break y Continuar en Bash Scripting. Estas declaraciones son herramientas poderosas para controlar la ejecución de su código y mejorar la eficiencia de sus scripts. Al usar el descanso y continuar de manera efectiva, puede crear scripts bash más robustos y eficientes que puedan manejar una variedad de tareas y escenarios.