Bash para bucle en una línea

Bash para bucle en una línea
En cualquier lenguaje de programación o secuencia de comandos, el bucle es una característica por excelencia. Los bucles generalmente deben realizar una tarea repetitiva hasta que se cumpla una determinada condición. Bash es un poderoso lenguaje de secuencias de comandos que admite todas las características principales de un lenguaje de secuencias de comandos (incluidos bucles).

Esta guía demuestra una línea para bucles en Bash.

Bash para bucle

La bash presenta múltiples tipos de bucle, para, mientras y hasta. Cada tipo de bucle viene con una estructura diferente. Sin embargo, los fundamentos siguen siendo los mismos. Para los principiantes, esta guía explica en profundidad sobre varios bucles bash y cómo implementarlos.

Como sugiere el título de esta guía, nuestro enfoque estará en el bucle. Mientras que el bucle generalmente requiere múltiples líneas, podemos representarlo en una sola línea si el bucle es bastante simple. Este proceso, sin embargo, requiere una comprensión de los fundamentos de BASH para un bucle.

Para ejecutar nuestros códigos BASH, necesitamos un script de shell. Ya tengo un script ficticio para ejecutar nuestros códigos.

$ Cat Dummy.mierda

Para la estructura de bucle

Esta es la estructura básica de la fiesta para bucle.

para en [lista]
hacer
hecho

Aquí hay un ejemplo rápido para el bucle implementando esta estructura.

para i en 1 ... 5
hacer
echo "Número: $ I"
hecho

Bash también es compatible con el estilo C para bucle. Si tiene antecedentes de programación en C, entonces C de estilo C será fácil de entender.

para ((; ; ))
hacer
hecho

Ponamos el estilo C para bucle en acción.

para ((i = 1; i <= 5; i++)); do
echo "Número: $ I"
hecho

Para bucle también puede funcionar con archivos. En el siguiente ejemplo, el bucle buscará todas las particiones en el disco "/dev/sda" e imprimirá todo.

para i in /dev /sda*; hacer
echo "$ i"
hecho

Una línea para bucle

Con los conceptos básicos cubiertos, ahora podemos comprimir para bucles en una sola línea. Básicamente, eliminaremos las nuevas líneas de todo el código de bucle para. También podemos ejecutar estos bucles directamente desde la línea de comando.

Comprimamos el primer ejemplo. Si eliminamos todas las nuevas líneas, el código se verá así.

$ para i en 1 ... 5; hacer eco "número: $ i"; hecho

Como puede ver, se eliminan todas las nuevas líneas. En cambio, esas nuevas líneas se reemplazan por semicolones (;).

Podemos hacer lo mismo con el estilo C para bucles.

$ para ((i = 1; i <= 5; i++)); do echo "number: $i"; done

Eche un vistazo al siguiente ejemplo. Todos los archivos de configuración dentro de “/etc."Se copiará como copia de seguridad del directorio" ~/copia de seguridad ".

$ para i in /etc /*.conf; hacer cp $ i/home/viktor/copia de seguridad; hecho

Para bucle con condicionales

En muchos casos, un bucle contendrá condicionales para tomar decisiones en varios puntos de la repetición.

Aquí, lo siguiente para bucle imprimirá todos los números uniformes dentro de un rango fijo.

para i en 1 ... 10; hacer
if [$ ((i%2)) -eq 0]; entonces
echo "$ yo incluso"
FI
hecho

Es posible expresar todo este bucle en una sola línea. Al igual que antes, reemplace toda la nueva línea con Semicolons (;).

$ para i en 1 ... 10; hacer si [$ ((i%2)) -eq 0]; Entonces hacer eco "$ I incluso"; fi; hecho

Se recomienda escribir el bucle con el espacio adecuado primero. Una vez que se confirma que el bucle funciona correctamente, podemos comprimirlo de forma segura en una sola línea.

Ejemplos diversos

Aquí hay un puñado de una línea para bucles de referencia.

$ para i en 1 2 3 4 5; hacer eco "número: $ i"; hecho
$ para I en CPU Motorboard Ram PSU GPU; hacer eco "parte de la computadora: $ i"; hecho

El siguiente ejemplo será de un bucle infinito.

$ para ((;;)); hacer eco "al infinito!"; hecho

Pensamiento final

Esta guía demuestra varias una línea efectiva para ejemplos de bucle. Es muy fácil transformar un bucle normal para una línea. Con suerte, después de practicar estos ejemplos, los lectores tendrán una buena idea de usar bash para bucle en una línea.

Computación feliz!