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