Переносим для всех оболочек и любой системы, которая имеет seq (поскольку этот вопрос помечен)
Если начало 1:
$ echo $(seq 10)
1 2 3 4 5 6 7 8 9 10
В противном случае:
$ echo $(seq 5 10)
5 6 7 8 9 10
С бк:
$ echo $(echo "for (i=0;i<=1000;i++) i"| bc)
В баш
echo {1..10}
Замечания:
Это эхо-решение работает, если значение IFS содержит символ новой строки, что он делает по умолчанию.
По умолчанию для IFS задана последовательность <пробел> <вкладка> <новая строка> . И сбрасывается при каждом чистом запуске оболочки. Но если у вас есть какие-либо опасения, что это могло измениться в каком-то крайнем угловом случае, у нас есть несколько решений.
В bash, zsh, ksh просто используйте: IFS = $ '\ t \ n' (пропустите все остальные ответы).
Однако сброс значения IFS в sh может быть сложным. Читайте полную информацию здесь .
Отключить IFS.
$ unset IFS; echo $(seq 5 10) #Always work.
всегда будет работать При условии, что ниже не будет кода (или дочерних сценариев), для которого требуется установить IFS, например, такого сценария OldIFS="$IFS"
.
Правильное решение.
Используя трюк для sh:
sh -c 'IFS="$(printf " \t\nx")"; IFS="${IFS%x}"; printf "$IFS"|xxd' # correct.
echo $(seq 1 10)