Bash For Loop con ejemplos prácticos
OUna característica esencial de todos los lenguajes de programación de computadoras es la capacidad de ejecutar un fragmento de código repetidamente. Ahorra mucho tiempo y también reduce las líneas de código en un programa. La programación Bash permite a los usuarios ejecutar una tarea una y otra vez mediante el uso de Loops. En este artículo, veremos el En bucle declaración.
A En bucle La instrucción se usa para ejecutar una serie de comandos hasta que una condición particular se vuelve falsa. Por ejemplo, puede usarlo para ejecutar un comando de Linux cinco veces o usarlo para leer y procesar archivos en los sistemas hasta alcanzar una condición particular.
- Comando Bash For Loop
- Utilice For Loop para imprimir una serie de cadenas
- 'For In Loop' con elementos de matriz para respaldar archivos
- 'For In Loop' con rango
- 'For Loop' con sintaxis de programación C
- Crea un bucle infinito con bucle for
- Declaraciones de ruptura y continuación en un 'bucle for'
- La declaración Continuar
- Programas de Bash más prácticos que utilizan el bucle For
- Conclusión
Comando Bash For Loop
los En bucle en la programación Bash viene en dos sintaxis diferentes:
for item in (list) do command_one command_two ... done
En la sintaxis For In Loop anterior, hay cuatro palabras clave: for, in, do y done. La lista se refiere a los valores de la 'lista'. Item es un nombre de variable que no es una palabra clave en el lenguaje de programación Bash.
Cuando ejecutamos el programa, ejecutará el comando dependiendo de la cantidad de elementos en la 'lista'. Por lo tanto, si la lista contiene cinco cifras (1 2 3 4 5), el comando se ejecuta cinco veces.
En cada iteración, el valor de la lista se almacena en la variable del elemento y se utiliza en el cuerpo del programa.
- El bucle For con una sintaxis como la del lenguaje de programación C
for (( expression_1; expression_2; expression_3)) do command_one command_two ... done
Con la declaración For Loop anterior, si es un desarrollador de C, C ++ o Java, debe estar familiarizado con la sintaxis. 'expresión_1 significa inicialización, expresión_2 significa condición y expresión_3 significa actualización.
Cuando ejecutamos el programa, se evalúa 'expresión_1' antes de realizar la primera iteración inicializando los valores de las variables para el ciclo For.
El cuerpo del programa se ejecuta hasta que expression_2 sea TRUE. El cuerpo del programa aquí se refiere a los comandos entre las palabras clave do y done. Ahora, después de cada iteración del programa, se evalúa expression_3.
Habiendo comprendido eso, veamos algunos ejemplos de Bash For Loop que puede utilizar en sus actividades diarias trabajando con sistemas Linux. Escribiremos scripts y los ejecutaremos en la terminal. Tenga en cuenta que todos los scripts de Bash usan '.sh'. extensión.
Utilice For Loop para imprimir una serie de cadenas
Puede utilizar un For In Loop para imprimir una serie de cadenas. Eche un vistazo al código a continuación. Ya tenemos los tres archivos usados en el programa en nuestro directorio de trabajo. Eso es 'testFile1', 'testFile2' y 'testFile3'.
#!/bin/bash for item in testFile1 testFile2 testFile3 do cat $item echo "Done with file $item" echo done
La salida es:
El programa anterior enumera el contenido del archivo especificado en la lista. Es decir, testFile1, testFile2 y testFile3. El comando 'cat' es una utilidad de Linux que se utiliza para mostrar el contenido de un archivo.
Por lo tanto, el programa recorre los archivos que comienzan con 'testFile1', ejecuta el comando 'cat' antes de imprimir la instrucción 'done with testFilee' e itera al siguiente archivo.
Después de recorrer todos los archivos de la lista, el programa finaliza automáticamente.
'For In Loop' con elementos de matriz para respaldar archivos
Puede usar un For In Loop para iterar elementos en una matriz. Eche un vistazo al código a continuación.
#!/bin/bash Files=('testFile1' 'testFile2' 'testFile3') for item in "${Files[@]}"; do cp $item{,.bak} echo "Created a backup of $item" done
La salida es como se muestra a continuación.
El programa anterior usa el comando cp para crear copias de seguridad de los archivos en la matriz. A medida que recorre cada archivo, crea una copia de seguridad de los datos e imprime el 'Mensaje de copia de seguridad creado' antes de pasar al siguiente elemento de la matriz.
'For In Loop' con rango
Puede iterar sobre un rango de números. Por ejemplo, desea iterar entre los dígitos del 1 al 100. Escribir todos estos números en su programa hará que el código sea bastante extenso. Podemos resolver esto mediante el uso de rangos. Eche un vistazo al código a continuación.
#!/bin/bash for i in {0..50} do echo "COUNT: $i" done
La salida debe ser como se muestra a continuación.
De la salida anterior, vemos que el programa tiene números impresos del 1 al 50. Es porque le dimos un rango de 1 a 50 dígitos.
Suponga que desea crear un rango que omita una cierta cantidad de dígitos antes de imprimir una salida. Luego, necesitaremos incluir un tercer parámetro en la sintaxis del rango. Vea el código a continuación.
#!/bin/bash for i in {0..100..10} do echo "COUNT: $i" done
La salida debe ser como se muestra a continuación.
La salida debe ser como se muestra a continuación.
En la imagen de arriba, vemos que el programa imprimió números del 0 al 100 pero omitiendo diez (10) dígitos en cada iteración.
'For Loop' con sintaxis de programación C
Habiendo examinado varios ejemplos con 'For In Loop', veamos la otra sintaxis de For Loop. Contiene una expresión de inicialización que inicializa el bucle, una expresión de condición que determina la ejecución del programa y una expresión de incremento que actualiza el valor de la variable.
Eche un vistazo al código a continuación.
#!/bin/bash for (( i=5; i>=1; i-- )) do echo "COUNT: $i" done
La salida debe ser como se muestra a continuación.
Crea un bucle infinito con bucle for
Para crear un bucle infinito en Bash, usaremos la sintaxis de programación C. Vea el código a continuación.
#!/bin/bash for (( ; ; )) do echo "Use Ctrl+C to terminate the loop." echo "Starting Infinite Loop..." done
La salida debe ser como se muestra a continuación.
Para salir de un bucle infinito, presione Ctrl + C para cancelar el proceso.
Declaraciones de ruptura y continuación en un 'bucle for'
En programación, las sentencias Break y Continue controlan la ejecución de un programa. La instrucción Break termina el programa y sale del bucle. La instrucción Continue, por otro lado, fuerza a que tenga lugar la siguiente iteración del programa.
Veamos el programa a continuación, que hace uso de la instrucción Break.
#!/bin/bash for distro in Ubuntu Manjaro Debian Fedora Kali ArchLinux do if [[ "$distro" == 'kali' ]]; then break fi echo "Linux_distribution: $distro" done
La salida debe ser como se muestra a continuación.
En la imagen de arriba, vemos que 'Kali' no se imprimió en la salida. Es porque le dimos una 'Condición Si' que verificaba el valor retenido por la variable 'distro'. Si el valor era 'Kali', la instrucción 'break' se ejecutó y finalizó el bucle.
Como se puede ver, ArchLinux no se imprimió en la salida porque la declaración de interrupción finalizó el programa.
La declaración Continuar
A diferencia de la instrucción Break, la instrucción Continue termina el programa en esa parte, pero fuerza la ejecución de la siguiente iteración del programa.
Eche un vistazo al código a continuación.
#!/bin/bash for distro in Ubuntu Manjaro Debian Fedora Kali ArchLinux do if [[ "$distro" == 'Kali' ]]; then continue fi echo "Linux_distribution: $distro" done
La salida debe ser como se muestra a continuación.
En la imagen de arriba, vemos que 'Kali' no se imprimió en la salida. Es porque le dimos una 'Condición Si' que verificaba el valor retenido por la variable 'distro'. Si el valor era 'Kali', se ejecutó la instrucción 'continuar'. Terminó el bucle en este punto, pero forzó la ejecución de la siguiente parte del programa.
Como puede ver, 'Kali' no se imprimió en la salida mientras que 'ArchLinux' sí. La instrucción Continuar forzó la ejecución de la siguiente parte del programa.
Programas de Bash más prácticos que utilizan el bucle For
Habiendo examinado varios programas Bash usando la declaración 'For Loop', veamos ejemplos de la vida real que puede usar para administrar sus sistemas Linux.
- Un programa Bash para convertir archivos MP3 a WAV
En este programa, necesitará la herramienta MPG123 instalada en su sistema. El siguiente código busca cualquier archivo con la extensión '.mp3'. y lo convierte en '.wav'. archivo usando la herramienta 'mpg123'.
#!/bin/bash for item in ./*.mp3 do mpg123 -w music.wav $item.mp3 done
En la imagen de abajo, vemos que convertimos 'Audio.mp3' a 'Music.wav'.
- Programa 'For Loop' para comprobar si existen archivos firefox.desktop.
El programa siguiente iterará a través de todos los archivos presentes en el directorio applications / y dará una salida de si firefox.desktop está presente.
#!/bin/bash for item in /usr/share/applications/* do if [ "${item}" == "/usr/share/applications/firefox.desktop" ] then echo "Firefox.Desktop is present in the applications directory"; fi done
Conclusión
Ahora que ha aprendido a usar el En bucle declaración en la programación Bash, cree programas para automatizar varias tareas en sus sistemas Linux. Si este artículo le resultó útil, no dude en compartir el enlace con sus amigos.
Deja una respuesta