Shell Scripting 101: Bucle while en Shell Script

En los 101 anteriores de shell scripting, cubrimos arreglos y Variables en scripts de shell. En este tutorial, cubriremos el while loop en script de shell .

Un ciclo while en los scripts de shell se usa para repetir las instrucciones varias veces hasta que la condición del ciclo se mantenga verdadera. Los bucles tienen muchos casos de uso en aplicaciones del mundo real, ya que los creamos para automatizar tareas repetitivas. Repasemos algunos de los casos de uso y aprendamos a usar el ciclo while en scripts de shell.

Tabla de contenido

Sintaxis de bucle while en scripts de shell

El bucle while funciona en función de la condición que se le proporciona. Puede ser tan simple como esperar a que una variable sea igual a un número específico, o tan complejo como esperar a que la salida de otro comando coincida con la salida que especificamos. Las posibilidades son infinitas aquí. Si puede evaluar algo como VERDADERO o FALSO, puede usarlo como una condición para el ciclo while.

                      
while [condition - should evaluate to TRUE or FALSE]
do
    command 
    command
done

                    

Así es como se ve un ciclo while típico.

Operadores booleanos cuando se trabaja con scripts de shell

Además de los operadores booleanos que ha visto en otros lenguajes de programación, incluidos ==, <, >, <=, >=, etc., estos son operadores específicos de scripts de shell. La principal diferencia de uso es que estos operadores solo funciona cuando los valores numéricos están provistos. Con valor de cadena, la operación simplemente fallará.

Operador Descripción Ejemplo
-nacido Comprueba si ambos operandos no son iguales [ 1 -ne 2 ] es verdad
equivalente Comprueba si ambos operandos son iguales [ 1 -eq 2 ] Es falso
es Comprobar si el operando izquierdo es menor que el operando derecho [1-lt 2 ] es verdad
gt Comprobar si el operando izquierdo es mayor que el operando derecho [1-gt 2 ] Es falso
los Comprueba si el operando de la izquierda es menor o igual que el de la derecha. [1-le 2 ] es verdad
dar Comprueba si el operando de la izquierda es mayor o igual que el de la derecha. [1-ge 2 ] Es falso

Creación de un ciclo while en un script de Shell

Un ciclo while no tiene un límite de repetición por defecto. Tenemos que proporcionarle explícitamente una condición que, en algún momento durante la ejecución del código, se vuelva falsa. De lo contrario, tendrá un ciclo que no termina a menos que se envíe una señal de interrupción.

                      
i=0
while [ $i -le 10 ]
do
    echo True
    ((i++))
done
echo False

                    

Guarde el script anterior con cualquier nombre con el .sh extensión. Para ejecutar el archivo, puede ejecutarlo con el bash comando como bash .sh o haga que el archivo sea ejecutable usando el comando chmod. Para hacer que el script sea ejecutable, ejecute chmod +x .sh y luego ./ .sh le permitirá ejecutar el script.

Entendamos el guión línea por línea.

  • yo=0 – Aquí establecemos la variable $i a 0. Obtenga más información sobre Variables en nuestro tutorial anterior
  • tiempo [ $i -le 10 ] – Ejecute el ciclo while solo hasta que la variable $i sea menor o igual a 10. Por lo tanto, este ciclo se ejecutará 11 veces, incluida la ejecución CERO-ésima.
  • hacer – Marca el comienzo del ciclo while en scripts de shell
  • eco verdadero – Un simple comando que imprimirá la palabra “Verdadero” en nuestro terminal
  • ((i++)) – Incrementos variables de estilo C a añadir 1 a la variable i con cada bucle. Hay varias otras formas de realizar un incremento que incluyen $i=((i+1)), ((i=i+1)), etc. Siéntase libre de usar cualquiera de las dos.
  • hecho – Marca el final del ciclo while
  • eco falso – Esto nuevamente simplemente imprime la palabra Falso en la pantalla para indicar que la condición ahora se ha vuelto falsa.

Recibirá un resultado similar al de la siguiente captura de pantalla.

Mientras bucle en salida de script de shell

Ciclo while infinito en script de shell

Ahora que descubrimos cómo agregar una condición para terminar el ciclo while, veamos cómo podemos trabajar en un ciclo while infinito. Lo único que tendremos que hacer es omitir la parte de la condición.

                      
i=0
while :
do
    echo Script ran $i times
    ((i++))
done
echo False

                    

Guarde este script en otro archivo con el .sh extensión. Puede seguir los mismos pasos anteriores para ejecutar el script de shell. Tan pronto como se ejecute el script, en menos de 1 segundo, debería obtener el resultado cientos de miles de veces.

Para detener el script, presione Ctrl + C .

Bash infinito mientras bucle

Tendrás que desplazarte hacia arriba para ver dónde empezaste porque los bucles se ejecutan muy rápido.

Conclusión

Este es un ciclo lo suficientemente simple como para no necesitar una cobertura detallada en este momento. A medida que avanzamos con los temas, continuaremos usando el ciclo while de manera consistente. para operaciones más detalladas, incluida la lectura de archivos, la evaluación de más condiciones, etc. Cuando siga los tutoriales de shell scripting 101, aprenderá un tema con cada tutorial. Asegúrese de practicar lo suficiente para asegurarse de estar bien versado y tener una buena práctica antes de pasar al siguiente tema. En este tutorial, hemos cubierto el ciclo while en el script de shell y el uso.

Referencias:
https://www.gnu.org/software/gawk/manual/html_node/While-Statement.html

Related Posts