GNU/Linux >> Tutoriales Linux >  >> Linux

El bucle while en los scripts de Shell

Hoy aprenderemos sobre el bucle while en los scripts de shell. Los bucles son una parte esencial de cualquier lenguaje de programación. Cuando escribimos un código para ejecutar un conjunto de sentencias 15 veces, escribir la misma sentencia una y otra vez sería improductivo.

Los bucles ahorran tiempo al programador.

Uno de los bucles más utilizados en cualquier lenguaje de programación es el bucle while. Usamos el bucle while en los scripts de shell para repetir un conjunto de declaraciones siempre que se cumpla una condición dada después de cada iteración.

¿Cómo funciona un bucle while en scripts de shell?

El ciclo while en los scripts de shell lo ayuda a hacer que su código sea eficiente al reducir la cantidad de código que necesita escribir.

Es útil cuando tienes que hacer algo en tu guión una y otra vez. Entendamos el funcionamiento de un bucle while en scripts de shell a través de su sintaxis:

while [ condition ] 
do 
    statement 1
    statement 2
done

Aquí tenemos tres palabras clave, a saber, mientras , hacer y hecho .

  • La primera palabra clave 'while' indica el comienzo del ciclo cuando ejecutamos el script de shell.
  • Le sigue una condición encerrada entre corchetes.
  • La palabra clave 'do' se usa antes de las declaraciones que se ejecutarán en el ciclo.
  • Cada bucle while consta de una condición seguida de un conjunto de comandos.
  • Luego encontramos la palabra clave done que marca el final del ciclo.

Piense en do y done como paréntesis de apertura y cierre en otros lenguajes de programación

En primer lugar, se evalúa la condición. Si la condición es VERDADERA, las declaraciones que siguen a do será ejecutado. Esto se repite hasta que llega un punto en el que la condición se evalúa como FALSO.

Una vez que la condición sea falsa, el bucle terminará.

Lo importante a tener en cuenta es que, al igual que la programación en C, los scripts de shell distinguen entre mayúsculas y minúsculas. Por lo tanto, debe tener cuidado al usar las palabras clave en su código.

Si está interesado en obtener información sobre declaraciones condicionales, haga clic aquí para leer sobre if-else en scripts de shell.

Usar bucle while en scripts de shell

Solo leer la teoría y echar un vistazo a la sintaxis no lo beneficiará hasta que pueda usarla prácticamente en su código.

Por lo tanto, para una mejor comprensión del concepto y su aplicación práctica, consulte el siguiente ejemplo.

While loop para imprimir los primeros 5 números

Siempre es mejor empezar con algo básico. Aquí usaremos el ciclo while en scripts de shell para imprimir los primeros 5 números naturales en nuestra pantalla.

Este sencillo script se repetirá mientras el valor de la variable 'a' sea menor que ('-lt') el 5. La condición se cumple para los números del 1 al 4, por lo tanto, el comando se ejecutará para el mismo.

Para cualquier número mayor o igual a 5, la condición es falsa. Por lo tanto, el ciclo se terminará. Así es como se escribirá el código.

#!/bin/sh
a=1
while [ $a -lt 5 ]
do
    echo $a
    ((a++))
done

Encontrar el factorial usando el bucle while en scripts de Shell

Uno de los ejemplos más prácticos sería usar la funcionalidad de un ciclo while para completar una tarea. Encontremos el factorial de un número.

El siguiente código muestra cómo podemos realizar esta tarea utilizando el ciclo while.

#!/bin/sh
counter=5
factorial=1
while [ $counter -gt 0 ]
do 
      factorial=$(( $factorial * $counter ))
      ((counter--))
done 
echo $factorial

Como puede ver, el factorial para el ciclo while se imprime correctamente como 120.

Lectura de un archivo en secuencias de comandos de Shell usando el ciclo while

Cuando se trata de archivos de texto, el ciclo while resulta ser una herramienta importante, ya que podemos hacer que el ciclo lea el archivo completo usando el botón while read . comando.

Este comando puede ayudarnos a leer el contenido de un archivo desde la línea de comandos. El siguiente código utiliza esta funcionalidad del bucle while en el script de shell para leer el contenido de un archivo línea por línea y luego imprimirlo en la pantalla del usuario.

#!/bin/bash
FILE=$1
while read line
do
    # use $line variable to process line
    echo $line
done < $FILE

Como puede ver, pasé el nombre del archivo como argumento porque en nuestro script de shell, usamos $1 y lo asignamos a la variable ARCHIVO. Esto significa que el primer argumento se aceptará como el nombre del archivo y el script procederá a leer el archivo.

Además, usamos el operador de redirección de entrada dentro de la secuencia de comandos después del hecho para que podamos usar el nombre del archivo directamente como argumento al ejecutar la secuencia de comandos.

Si omite esa parte, su comando se verá algo así como:

bash file.sh < filename.txt

Como puede ver, redirija la entrada dentro del script o mientras ejecuta el script. Los resultados son los mismos.

Conclusión

El bucle while en los scripts de shell es un arma clave en el arsenal de todo programador de shell. Es la mejor herramienta para usar cuando necesita ejecutar un conjunto de instrucciones repetidas en función de una condición.

Al automatizar la ejecución de declaraciones específicas, no solo necesita escribir menos código, sino que también libera tiempo que puede usarse en tareas más importantes, como la depuración.

Esperamos que este tutorial haya podido ayudarlo a comprender cómo usar la función de bucle While. Si tiene alguna consulta, comentario o sugerencia, no dude en comunicarse con nosotros en los comentarios a continuación.


Linux
  1. Personalización del shell Bash

  2. ¿Matrices asociativas en scripts de Shell?

  3. ¿Bloqueo correcto en scripts de Shell?

  4. Precedencia de los operadores lógicos de Shell &&, ||?

  5. Manteniéndote al tanto – Bash For, While, Until Ejemplos de bucles

Golpear mientras se repite

¿Qué es el Shell en Linux?

Cómo crear scripts de shell

Matrices en scripts de Shell

¿Cómo usar if-else en Shell Scripts?

Comprender el bucle for en los scripts de Shell