Portátil para todos los shells y cualquier sistema que tenga seq (ya que esta pregunta está etiquetada)
Si inicio es 1:
$ echo $(seq 10)
1 2 3 4 5 6 7 8 9 10
De otra manera:
$ echo $(seq 5 10)
5 6 7 8 9 10
Con bc:
$ echo $(echo "for (i=0;i<=1000;i++) i"| bc)
En bash
echo {1..10}
Nota:
Esta solución de eco funciona si el valor de IFS contiene una nueva línea, lo que hace por defecto.
Por defecto, IFS está configurado en la secuencia <espacio><tabla> <nueva línea> . Y se restablece para cada inicio limpio del shell. Pero, si le preocupa que haya cambiado en algún caso extremo, tenemos varias soluciones.
En bash, zsh, ksh solo use: IFS = $ '\ t \ n' (omita el resto de esta respuesta).
Sin embargo, restablecer el valor de IFS bajo sh puede ser complejo. Lea el detalle completo aquí .
Desarmar IFS.
$ unset IFS; echo $(seq 5 10) #Always work.
siempre funcionará Siempre que no haya ningún código a continuación (o scripts secundarios) que necesiten un conjunto IFS, como un script que lo haga OldIFS="$IFS"
.
Solución correcta
Usando un truco para sh:
sh -c 'IFS="$(printf " \t\nx")"; IFS="${IFS%x}"; printf "$IFS"|xxd' # correct.
echo $(seq 1 10)