En este artículo, cubriremos los conceptos básicos de la expresión de secuencia en Bash.
La expresión de secuencia de Bash genera un rango de enteros o caracteres definiendo un punto inicial y final del rango. Generalmente se usa en combinación con for
bucles.
Expresión de secuencia Bash #
La expresión de secuencia toma la siguiente forma:
{START..END[..INCREMENT]}
- La expresión comienza con una llave de apertura y termina con una llave de cierre.
START
yEND
pueden ser números enteros positivos o caracteres únicos.- El
START
y elEND
los valores son obligatorios y separados por dos puntos..
, sin espacio entre ellos. - El
INCREMENT
el valor es opcional. Si está presente, debe separarse delEND
valor con dos puntos..
, sin espacio entre ellos. Cuando se dan caracteres, la expresión se expande en orden lexicográfico. - La expresión se expande a cada número o carácter entre
START
yEND
, incluidos los valores proporcionados. - Una expresión formada incorrectamente no se modifica.
Aquí está la expresión en acción:
echo {0..3}
Cuando no hay INCREMENT
se proporciona el incremento predeterminado es 1:
0 1 2 3
También puedes usar otros personajes. El siguiente ejemplo imprime el alfabeto:
echo {a..z}
a b c d e f g h i j k l m n o p q r s t u v w x y z
Si el START
el valor es mayor que END
entonces la expresión creará un rango que decrece:
for i in {3..0}
do
echo "Number: $i"
done
Number: 3
Number: 2
Number: 1
Number: 0
Cuando un INCREMENT
se da, se utiliza como paso entre cada elemento generado:
for i in {0..20..5}
do
echo "Number: $i"
done
Cada número generado es mayor que el número anterior por 5:
Number: 0
Number: 5
Number: 10
Number: 15
Number: 20
Al usar números enteros para generar un rango, puede agregar un 0
inicial para forzar que cada número tenga la misma longitud. Para rellenar enteros generados con ceros a la izquierda, prefije START
y END
con un cero:
for i in {00..3}
do
echo "Number: $i"
done
Number: 00
Number: 01
Number: 02
Number: 03
La expresión puede tener como prefijo o sufijo otros caracteres:
echo A{00..3}B
A00B A01B A02B A03B
Si la expresión no se construye correctamente, se deja sin cambios:
echo {0..}
0..
Conclusión #
La expresión de secuencia de Bash le permite generar un rango de números enteros o caracteres.
Si tiene alguna pregunta o comentario, no dude en dejar un comentario.