Recorrer un rango con un for en Shell Script

En Shell Script podemos recorrer varios tipos de rangos. El más habitual es un rango numérico, que lo definiremos entre llaves, indicando el comienzo y el final separados por punto, punto:

#!/bin/bash

for i in {1..10}
do
    echo "Estoy en la pasada $i del ciclo"
done

Si no quisiéramos que numere con un único dígito los números menores de 10, sino con dos dígitos, podríamos hacerlo indicando que el comienzo del ciclo sea 01:

#!/bin/bash

for i in {01..10}
do
    echo "Estoy en la pasada $i del ciclo"
done

Para hacer una cuenta atrás no hace falta indicar un paso negativo, sino simplemente indicar un comienzo superior al final:

#!/bin/bash

for i in {10..01}
do
    echo "Faltan $i pasadas para acabar el ciclo"
done

Indicar el paso lo podemos hacer en caso de que necesitemos que el ciclo no vaya de uno en uno, bien para adelante o bien para atrás. Por ejemplo, si queremos mostrar los números pares entre 2 y 200, podemos escribir:

#!/bin/bash

echo "Pares del 2 al 200:"
for i in {002..200..2}
do
    echo $i
done

En Shell Scritpt también podemos recorrer rangos de letras. Para ello indicaremos letras como comienzo y final del rango:

 

#!/bin/bash

for i in {a..z}
do
    echo $i
done

Con las letras también podemos indicar un paso, por ejemplo, si queremos listar una letra sí y otra no, podemos escribir:

#!/bin/bash

for i in {a..z..2}
do
    echo $i
done

O invertir el orden:

#!/bin/bash

for i in {z..a}
do
    echo $i
done

Deja una respuesta

Tu dirección de correo electrónico no será publicada.