Cómo utilizar Bash para comandos de bucle

Función Bash For Loop

Una de las mejores formas de hacer su vida más fácil con la tecnología, ya sea en el trabajo o en el hogar, es aprovechar la automatización. Automatizar tareas con scripts y trabajos cronometrados es una forma segura de ahorrarle tiempo, dolores de cabeza y esfuerzo. Sin embargo, no está claro por dónde empezar. Aquí te mostramos cómo usar el Bash for Loop Command, una de las herramientas fundamentales en la automatización de TI, para comenzar.

Configuración de su entorno de prueba

Lo primero que necesitará es una instancia funcional de Bash. Este es el shell predeterminado en la Terminal en Linux, Unix, BSD y macOS (a menos que esté ejecutando zsh). Puede verificar qué shell está ejecutando escribiendo el siguiente comando en su terminal:

Debería imprimir el shell que estás usando. Mi salida me dice que estoy usando /bin/bash, que es exactamente lo que estoy buscando.

Bash para carcasa de bucle

También necesitará un editor de texto; el editor que elija debería estar bien. Estoy usando Nano en la terminal, pero también podrías usar Vim o Emacs en la terminal o algo como Gedit, Kate o Sublime en la GUI.

Cree un archivo de secuencia de comandos en su editor de texto, ya sea utilizando el touch comando o simplemente escribiendo el nombre de su editor de texto y el nombre del archivo que desea crear. Para mí, podría simplemente escribir nano for-loop-test.sh, y estaría dorado.

The Bash For Loop: Lo básico

El ciclo For en Bash le dice al shell que itere sobre un rango específico de objetos y ejecute un comando específico en esos objetos. ¿Qué significa eso? Creo que puede ser más fácil mostrárselo. Este es un ciclo For muy básico.

Ejemplo 1 de Bash For Loop

La primera linea for i in 1 2 3 4 5 especifica una variable «i» y un rango de 1 a 5. Esto podría ser fácilmente otra secuencia de números más compleja, o podría ser una lista de archivos ingresados ​​allí o un directorio.

El siguiente bit es el formato básico, con el comando que se ejecutará en la parte con pestañas. do y done es parte de la sintaxis del bucle For y debe estar allí. Si tuviera que ejecutar este script, obtendría un resultado como este:

Bash para salida de Loop 1

Puede ver cómo entra esa variable. Le ayuda a identificar cada objeto individual en ese rango de entrada. Para especificar rangos de números un poco más complejos, puede usar llaves para configurarlos. Para especificar ese mismo rango de antes, puede cambiar for $i in 1 2 3 4 5 a for $i in {1..5}. La salida sería la misma. También puede hacer que cuente por ciertos números. Esto es contar todos los números de 3 en 3 entre 0 y 27.

Bash para conteo de bucles
Bash para salida de conteo de bucles

Algo que es más común en los scripts es ejecutar un comando en particular en un montón de archivos. Si quisiera usar cat en un montón de archivos en un directorio, podría hacerlo cambiando el script a lo siguiente.

Bash para directorio de bucle

Esto imprimiría la salida de todos los archivos en el «directorio de prueba» en la terminal.

Bash para bucle ll

La salida se vería como la siguiente en mi caso.

Bash para la salida del directorio de bucle

Puede comenzar a tener una idea de lo poderoso que puede ser el bucle For. Esto solo está raspando la superficie, y puede encadenar varios comandos juntos entre do y done, y también puede usar declaraciones condicionales para hacer los comandos más complejos.

No olvide consultar nuestros otros artículos de Bash, como Consejos y trucos de Bash para trabajar de forma más inteligente en la Terminal y algunos de los caracteres especiales de Bash que debe conocer.