Cómo hacer un bucle for en el script zsh

Cómo hacer un bucle for en el script zsh
Cada sysadmin debe saber cómo implementar scripts para automatizar su flujo de trabajo. Aunque tenemos muchas herramientas de automatización como Ansible, la secuencia de comandos sigue siendo una herramienta crítica para automatizar tareas en el mundo de Linux.

Este tutorial analizará los bucles, un concepto fundamental en secuencias de comandos y programación en general. Nos centraremos específicamente en cómo funcionan los bucles.

Para la estructura básica del bucle

Antes de que guionemos ejemplos para bucles, discutamos la estructura. Para los bucles adoptan la sintaxis general:

para en
hacer

hecho

Puede pasar la lista de elementos como una matriz, una serie de literales de cadena (separados por espacios) o una gama de números.

Consideremos ahora algunos ejemplos e ilustramos cómo funcionan los bucles.

Ejemplo 1

Considere el ejemplo que se muestra a continuación. Realiciamos una lista de valores de cadena e imprimimos la cadena actual en el bucle.

#!/usr/bin/zsh
para beber en agua de té café vino
hacer
echo "bebida: $ bebida"
hecho

Una vez que ejecute el script, debería ver cada elemento en la lista impresa, como se muestra en el ejemplo a continuación:

ps ./para.mierda
Beber agua
Beber té
Beber café
Beber vino

Ejemplo 2

También puede especificar el valor de lista en el bucle for como una secuencia de números. Haces esto estableciendo los valores de inicio y finalización. La sintaxis está debajo:

Inicio fin

Tome el ejemplo de los valores de bucle a continuación a los valores de bucle 10 veces.

#!/usr/bin/zsh
para i en 1 ... 10
hacer
echo "Número: $ I"
hecho

Debe obtener todos los números entre 1 y 10 impresos en la terminal.

Numero 1
Número 2

Numero 8
Número 9
Numero 10

Ejemplo 3

En algunos casos, al usar el rango de números, debe omitir los valores por un intervalo específico. Por ejemplo, para imprimir los números uniformes entre 10 y 20, deberá usar un intervalo de 2.

Puede hacer esto especificando el incremento a medida que ranga el tercer argumento del número.

La sintaxis es:

Inicio ... FIN ... Incremento

A continuación se muestra un código de ejemplo:

#!/usr/bin/zsh
para i en 10 ... 20 ... 2
hacer
echo "Número: $ I"
hecho

El código de ejemplo anterior debe imprimir todos los números pares entre 10 y 20. A continuación se muestra una salida de ejemplo:

Numero 10
Número: 12

Número: 20

Ejemplo 4

Otro caso de uso común para un bucle for para iterar sobre una variedad de elementos. Considere el ejemplo que se muestra a continuación:

#!/usr/bin/zsh
bases de datos = ('mysql' 'postgresql' 'mongodb' 'redis' 'fauna' 'cucarach db')
para db en "$ bases de datos [@]"; hacer
echo "base de datos: $ db"
hecho

El bucle anterior de arriba iterará cada elemento en la matriz e imprimirá.

Base de datos: mysql
Base de datos: PostgreSQL

Base de datos: fauna
Base de datos: cucaracha db

Romper y continuar las declaraciones

También puede usar las palabras clave de descanso y continuar para controlar el flujo del bucle dentro de un script ZSH.

Comencemos con la palabra clave de descanso.

Romper la palabra clave

Puede usar la palabra clave de descanso para terminar el flujo de bucle de corriente y pasar el control al siguiente bloque. El uso principal de esto es terminar el flujo de bucle si una condición específica es verdadera.

Por ejemplo:

#!/usr/bin/zsh
para db en mysql postgresql mongodb redis fauna cucaracha; do
if [["$ db" == 'MongoDB']]; entonces
romper
FI
echo "base de datos: $ db"
hecho

En el ejemplo anterior, pasamos sobre el elemento y rompimos el flujo de bucle si el elemento actual es MongoDB.

Aquí hay una salida de ejemplo:

Base de datos: mysql
Base de datos: PostgreSQL

Palabra clave continuar

Por otro lado, la palabra clave continua sale de la iteración de bucle actual y se salta a la siguiente iteración.

Por ejemplo:

#!/usr/bin/zsh
para i en 1 ... 10; hacer
if [["$ i" == '5']]; entonces
continuar
FI
echo "Número: $ I"
hecho

Una vez que el bucle esté en la quinta iteración, saltará y saltará al siguiente valor en el rango. Dicha funcionalidad conducirá a que el quinto valor no se imprima.

Conclusión

Este tutorial discutió cómo implementar los bucles en un script ZSH. Es bueno tener en cuenta que ZSH está basado en BASH; Por lo tanto, la funcionalidad de bucle creada para BASH también funcionará para ZSH.