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:
echo $SHELL
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.
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.
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:
Test round 1 Test round 2 Test round 3 Test round 4 Test round 5
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.
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.
Esto imprimiría la salida de todos los archivos en el «directorio de prueba» en la terminal.
La salida se vería como la siguiente en mi caso.
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.