for bash seq

for bash list



Variables en el reemplazo de bash seq({1..10}) (7)

¿Estás seguro de que ha sido BASH? ZSH maneja esto de la manera que desee. Esto no funcionará en BASH porque la expansión de llaves ocurre antes que cualquier otro tipo de expansión, como la expansión de variables. Entonces necesitarás usar un método alternativo.

¿Alguna razón particular por la que necesita combinar la llave y la expansión variable? Tal vez un enfoque diferente a su problema obviará la necesidad de esto.

Esta pregunta ya tiene una respuesta aquí:

¿Es posible hacer algo como esto?

start=1 end=10 echo {$start..$end} # Ouput: {1..10} # Expected: 1 2 3 ... 10 (echo {1..10})


Debería considerar usar seq(1) . También puedes usar eval:

eval echo {$start..$end}

Y aquí está el seq

seq -s'' '' $start $end


En bash, la expansión de llaves ocurre antes de la expansión variable, por lo que esto no es directamente posible.

En su lugar, use una aritmética for ciclo:

start=1 end=10 for ((i=start; i<=end; i++)) do echo "i: $i" done

SALIDA

i: 1 i: 2 i: 3 i: 4 i: 5 i: 6 i: 7 i: 8 i: 9 i: 10


Normalmente solo hago esto:

echo `seq $start $end`


Si no tiene seq , es posible que desee seguir con un ciclo simple

for (( i=start; i<=end; i++ )); do printf "%d " $i; done; echo ""


Tienes que usar eval :

eval echo {$start..$end}


use -s ex: seq -s '''' 1 10 salida: 1 2 3 4 5 6 7 8 9 10