Cómo usar BASH para el bucle

Uno de los trucos más básicos al crear scripts bash consiste en hacer un bucle para que se pueda ejecutar automáticamente una determinada tarea varias veces. Eventualmente, el bucle alcanzará una condición de prueba predeterminada y de repente dejará de ejecutarse. Bucles como estos funcionarán perfectamente en bash en Linux y macOS, así como en la shell bash dentro de Windows 10 e incluso en las diversas shells de FreeBSD. Naturalmente, puedes escribir cualquier comando que prefieras en cualquier bucle y mantener cualquier proceso en marcha el tiempo que quieras. Aunque escribiremos algunos bucles extremadamente simples, puedes usar estas habilidades para escribir cualquier tipo de scripts que quieras.

Hay muchas maneras de empezar a escribir un guión, pero para esta discusión asumiremos que has abierto un símbolo del sistema, ya sea buscando la terminal en el guión, haciendo clic en él en los menús KDE, MATE, LX o Whisker o manteniendo pulsadas las teclas Ctrl, Alt y T al mismo tiempo. Aunque discutiremos vi/vim y nano como editores, el tema de qué editor usar es bastante personal y podrías trabajar con lo que te sientas cómodo.

Método 1: El bucle de hasta

Tal vez el bucle más básico en bash es el bucle de hasta. Seguirá ejecutando comandos hasta que la condición de prueba que establezcas se haga realidad. Asumiremos que has usado nano o vi para abrir un archivo inexistente llamado until.sh y que estás listo para insertar texto nuevo en él. Haremos algo que cuente hasta 20 en su terminal para que sea fácil al principio.

Empieza escribiendo lo siguiente:

#!/bin/bash

n=0

hasta [ $n -gt 20 ]

do

eco $n

((n++))

hecho

Si estás usando nano, entonces sálvalo manteniendo presionada la tecla Ctrl y luego presionando O y finalmente X para salir. Los usuarios de vi querrán empujar escape y luego escribir :wq para guardar y salir.

A continuación teclea chmod +x hasta el loop en el prompt para hacerlo ejecutable y luego teclea ./hasta el loop para ejecutarlo. Una vez que se ejecute, el bucle seguirá imprimiendo nuevos números en tu terminal hasta que la variable n llegue a 20.

Por cierto, la primera línea le dice a su entorno qué shell debe cargar cuando se trabaja con estos scripts. Algunos programadores aconsejan usar sólo #!/bin/sh para asegurarse de que su script se adhiere a ciertos estándares POSIX, pero estos simples scripts no deberían tener ningún problema para ejecutarse en la gran mayoría de los sistemas modernos.

Método 2: El bucle de for

Un bucle de A para echa un vistazo a cada elemento de una lista dada y luego realiza un conjunto determinado de comandos en esa lista. Haremos una que imprima algunos nombres de sistemas operativos pero tened en cuenta de nuevo que podéis hacer cualquier cosa con esto si queréis.

Escriba nano forLoop o vi forLoop en el símbolo del sistema y comience a escribir el siguiente guión. Los usuarios de vi tendrán que entrar en el modo de inserción antes de hacerlo.

#!/bin/bash

unices=$0027GNU/Linux FreeBSD OpenBSD NetBSD Solaris OpenIndiana Darwin HP-UX Minix$0027

para unix en $unices

do

eco $unix

hecho

Guarde el archivo de nuevo usando el método Ctrl+O y luego Ctrl+X en nano o el Esc luego :wq método en vi antes de emitir el comando chmod +x para el Bucle para hacerlo ejecutable. Una vez que lo hayas hecho, ejecútalo escribiendo ./forLoop en el prompt. El bucle for obliga al comando echo a trabajar en cada uno de los elementos de la variable unices por turnos. Podrías, una vez más, reemplazar esa lista con cualquier argumento y reemplazar echo con cualquier comando para automatizar procesos largos.

Método 3: El bucle while

Comienza a editar un tercer archivo llamado whileLoop usando nano, vi o cualquier otro editor que quieras usar. Si prefieres usar un editor de texto gráfico, entonces podrías hacerlo también con cualquiera de estos proyectos siempre que te asegures de poner el archivo en el mismo directorio en el que estás trabajando desde dentro de la línea de comandos.

Dentro de este archivo, querrás añadir las líneas:

#!/bin/bash

n=0

mientras que [ $n -le 20 ]

do

eco $n

((n++))

hecho

Guarda el archivo de la misma manera que guardaste los otros y luego sal de tu editor de texto. Una vez que hayas salido, entonces emite el comando chmod +x whileLoop para permitirte ejecutarlo y luego ejecuta ./whileLoop para ejecutarlo. Verás la misma salida que salió del script untilLoop del primer método ya que cuenta de 0 a 20 en más de una fracción de segundo.

Esta es una excelente demostración del hecho de que hay más de una manera de hacer las cosas cuando se trabaja con bucles de esta manera. Aunque técnicamente no hay una forma incorrecta de hacerlo, probablemente te encontrarás con autores de guiones que afirman que deberías escribir tus guiones más cerca de la forma en que el lenguaje de programación C hace las cosas o, alternativamente, otros podrían sugerir que no deberías hacer esto. Honestamente, probablemente hay muchas maneras correctas de resolver un problema.

Siéntase libre de borrar sus guiones una vez que termine de practicar con ellos.

También te puede interesar:  Cómo desactivar Hiberfil.sys

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información. ACEPTAR

Aviso de cookies