Cómo utilizar declaraciones de interrupción y continuación en scripts de shell


En este artículo, veremos cómo usar un descanso y continuar en scripts bash. En bash, tenemos tres construcciones de bucle principales (para, mientras, hasta). Las declaraciones de ruptura y continuación están integradas en bash y se utilizan para alterar el flujo de los bucles. Este concepto de romper y continuar está disponible en lenguajes de programación populares como Python.

$ type -a break continue

Salga del bucle con una declaración de ruptura

La sentencia break saldrá del ciclo y el control se pasa a la siguiente sentencia del ciclo. Puede ejecutar el comando de ayuda para obtener información sobre la declaración de interrupción.

$ help break

La sintaxis básica de break.

$ break [n]

n is optional

Eche un vistazo al siguiente ejemplo. Este es un ciclo for simple que itera sobre un rango de valores de 1 a 20 en un paso incremental de 2. La declaración condicional evaluará la expresión y cuando sea verdadera ($val u003d 9), ejecutará la declaración break y el bucle terminará omitiendo las iteraciones restantes.

#!/usr/bin/bash

for val in {1..20..2}
do
  If [[ $val -eq 9 ]]
  then
     break
  else
  echo "printing ${val}"
fi
done

Omitir una iteración con Continuar declaración

¿Qué sucede si no desea salir por completo del ciclo pero omitir el bloque de código cuando se cumple una determinada condición? Esto se puede hacer con una declaración de continuación. La instrucción continue omitirá la ejecución del bloque de código cuando se cumpla una determinada condición y el control se devuelva a la instrucción de bucle para la siguiente iteración.

Para acceder a la ayuda.

$ help continue

Eche un vistazo al siguiente ejemplo. Este es el mismo ejemplo que usamos para demostrar la declaración break. Ahora, cuando Val se evalúa a nueve, la instrucción continue omitirá todos los bloques de código restantes y pasará el control al bucle for para la siguiente iteración.

#!/usr/bin/bash

for val in {1..20..2}
do
  If [[ $val -eq 9 ]]
  then
      continue
  fi
  echo "printing ${val}"
done

Si conocía Python, el comportamiento de romper y continuar también es el mismo en Python. Pero Python proporciona una declaración de control de bucle más llamada pase.

Pass es como una declaración nula y el intérprete la leerá pero no realizará ninguna operación. Simplemente resulta en ninguna operación. Bash no proporciona una declaración similar, pero podemos emular este comportamiento usando una palabra clave verdadera o dos puntos (:). Tanto el verdadero como los dos puntos están integrados en el shell y no realizan ninguna operación.

$ type -a : true

Eche un vistazo al siguiente ejemplo. Cuando se evalúa que una declaración condicional es verdadera ($val u003d 9), la declaración verdadera no hará nada y el ciclo continuará.

#!/usr/bin/bash

for val in {1..20..2}
do
  If [[ $val -eq 9 ]]
  then
      true
  fi
  echo "printing ${val}"
done

Eso es todo por este artículo. Nos encantaría escuchar sus valiosos comentarios y cualquier consejo que tenga.