Cómo usar hasta bucle en sus scripts de Shell


En bash for, while y until hay tres construcciones de bucle. Si bien cada bucle difiere sintácticamente y funcionalmente, su propósito es iterar sobre un bloque de código cuando se evalúa una determinada expresión.

Hasta que el bucle se usa para ejecutar un bloque de código hasta que la expresión se evalúa como falsa. Esto es exactamente lo opuesto a un bucle while. Mientras que el bucle ejecuta el bloque de código mientras la expresión es verdadera y hasta que el bucle hace lo contrario.

until [ expression ]
do
	code block
	...
	...
done

Analicemos la sintaxis.

  • Para iniciar el ciclo, debe usar la palabra clave hasta seguida de una expresión entre llaves simples o dobles.
  • La expresión debe evaluarse como falsa hasta que comience a ejecutar el bloque de código.
  • El bloque de código real se coloca entre hacer y listo.

En este breve artículo, aprenderá a utilizar el ciclo until en sus scripts de shell utilizando los siguientes ejemplos.

Cree un bucle infinito en los scripts

Puede crear un bucle infinito utilizando una declaración falsa como expresión. Cuando intente simular bucles infinitos, intente usar la suspensión, que pasará el script periódicamente.

count=0
until false
do
	echo "Counter = $count"
	((count++))
	sleep 2
done

Crear extractos de una sola línea

Puede crear declaraciones de bucle de una sola línea. Eche un vistazo al siguiente código. Este es el mismo que nuestro primer ejemplo de bucle infinito pero en una sola línea. Aquí tiene que usar un punto y coma (;) para terminar cada declaración.

# until false; do echo "Counter = $count"; ((count++)); sleep 2; done

Alterar el flujo con romper y continuar declaración

Puede usar declaraciones break y continue dentro del bucle while. La sentencia break saldrá del ciclo y pasará el control a la siguiente sentencia, mientras que la sentencia continue saltará la iteración actual e iniciará la siguiente iteración en el ciclo.

Estoy usando el mismo ejemplo de bucle infinito. Aquí, cuando el recuento es igual a cinco, la instrucción continue saltará a la siguiente iteración omitiendo el resto del cuerpo del bucle. Del mismo modo, el bucle se rompe cuando el recuento es igual o superior a 10.

count=0
until false
do
  ((count++))
  if [[ $count -eq 5 ]]
  then
    continue
  elif [[ $count -ge 10 ]]
  then
    break
  fi
  echo "Counter = $count"
done

Eso es todo por este artículo. Lo encontraremos con otro artículo interesante pronto "hasta" entonces siga leyendo y siga apoyándonos.