Cómo escribir Bash WHILE-Loops


Puede ejecutar una secuencia de comandos escribiéndolos en un archivo de script y luego ejecutándolos.

Un archivo de script es simplemente un archivo de texto, normalmente con la extensión de archivo.SH, que contiene una secuencia de instrucciones que también podrían ejecutarse desde la línea de comandos (shell).

Ejemplos de While Loop

A continuación se muestra un ejemplo de un bucle de tiempo. Cuando se ejecuta, este archivo de script imprimirá los números del 1 al 9 en la pantalla. La sentencia while le da más flexibilidad para especificar la condición de terminación que la de for-loop.

Por ejemplo, puede hacer que el guión anterior sea un bucle infinito omitiendo la sentencia de incremento «(( count+++)]»:

La sentencia «sleep 1» detiene la ejecución durante 1 segundo en cada iteración. Utilice el método abreviado de teclado Ctrl+C para finalizar el proceso.

También puede crear un bucle infinito poniendo dos puntos como condición:

Para utilizar múltiples condiciones en el bucle de tiempo, debe utilizar la notación de corchetes dobles:

En este script, la variable «done» se inicializa a 0 y luego se ajusta a 1 cuando el conteo llega a 5. La condición de bucle indica que el bucle continuará mientras «count» sea inferior a nueve y «done» sea igual a cero. Por lo tanto, los bucles salen cuando el conteo es igual a 5.

«&&» significa «y» lógico y «||» significa «o» lógico.

Una notación alternativa para las conjunciones «y» y «o» en condiciones es «-a» y «-o» con corchetes simples. La condición anterior:

…podría reescribirse como:

La lectura de un archivo de texto se realiza normalmente con un bucle de tiempo. En el siguiente ejemplo, el script bash lee el contenido línea por línea de un archivo llamado «inventory.txt:»

La primera línea asigna el nombre del fichero de entrada a la variable «FILE». La segunda línea guarda la «entrada estándar» en el descriptor de archivo «6» (puede ser cualquier valor entre 3 y 9). Esto se hace de forma que la «entrada estándar» pueda ser restaurada al descriptor de archivo «0» al final del script (véase la sentencia «exec 0» En la tercera línea el archivo de entrada se asigna al descriptor de archivo «0», que se utiliza para la entrada estándar. La sentencia «read» lee entonces una línea del fichero en cada iteración y la asigna a la variable «line1».

Para salir prematuramente de un bucle de tiempo, puede utilizar la sentencia de ruptura de esta manera:

La sentencia break salta la ejecución del programa hasta el final mientras que el bucle y ejecuta cualquier sentencia que lo siga. En este caso, la frase «echo Finished».

La sentencia continue, por otro lado, salta sólo el resto de la sentencia while loop de la iteración actual y salta directamente a la siguiente iteración:

En este caso, la sentencia «continue» se ejecuta cuando la variable «count» alcanza 5. Esto significa que la sentencia siguiente (echo «$count») no se ejecuta en esta iteración (cuando el valor de «count» es 5).

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *