Portabel untuk semua shell dan sistem apa pun yang memiliki seq (karena pertanyaan ini ditandai)
Jika mulai adalah 1:
$ echo $(seq 10)
1 2 3 4 5 6 7 8 9 10
Jika tidak:
$ echo $(seq 5 10)
5 6 7 8 9 10
Dengan bc:
$ echo $(echo "for (i=0;i<=1000;i++) i"| bc)
Di bash
echo {1..10}
catatan:
Solusi gema ini berfungsi jika nilai IFS berisi baris baru, yang dilakukan secara default.
Secara default IFS diatur ke urutan <spasi> <tab> <newline> . Dan diatur ulang untuk setiap awal bersih shell. Tetapi, jika Anda memiliki kekhawatiran bahwa itu mungkin telah berubah dalam beberapa kasus sudut ekstrim, kami memiliki beberapa solusi.
Di bawah bash, zsh, ksh gunakan saja: IFS = $ '\ t \ n' (lewati semua jawaban ini).
Namun, mengatur ulang nilai IFS di bawah sh mungkin rumit. Baca detail lengkap di sini .
Batalkan IFS.
$ unset IFS; echo $(seq 5 10) #Always work.
akan selalu bekerja. Asalkan tidak akan ada kode di bawah ini (atau skrip anak) yang perlu ditetapkan IFS, seperti skrip yang melakukannya OldIFS="$IFS"
.
Solusi yang benar.
Menggunakan trik untuk sh:
sh -c 'IFS="$(printf " \t\nx")"; IFS="${IFS%x}"; printf "$IFS"|xxd' # correct.
echo $(seq 1 10)