Búsqueda de sitios web

Cómo utilizar hasta el bucle en sus scripts de Shell


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

El bucle Hasta se utiliza para ejecutar un bloque de código hasta que la expresión se evalúe como falsa. Esto es exactamente lo opuesto a un bucle while. El bucle while ejecuta el bloque de código mientras la expresión es verdadera y el bucle hasta 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 do y done.

En este breve artículo, aprenderá cómo utilizar el bucle hasta en sus scripts de shell utilizando los siguientes ejemplos.

Crear un bucle infinito en scripts

Puedes crear un bucle infinito usando una declaración falsa como expresión. Cuando intente simular bucles infinitos, intente utilizar suspensión, que pasará el script periódicamente.

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

Crear declaraciones de una sola línea

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

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

Alterar flujo con pausa y continuar Declaración

Puede utilizar declaraciones de interrupción y continuación dentro del bucle mientras. La instrucción break saldrá del bucle y pasará el control a la siguiente instrucción, mientras que la instrucción continue omitirá la iteración actual y comenzará la siguiente iteración en el bucle.

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. De manera similar, el bucle se rompe cuando el recuento es igual o mayor que 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. Pronto te encontraremos con otro artículo interesante 'hasta', entonces sigue leyendo y sigue apoyándonos.