Достаточно часто приходится генирировать последовательности в shell. Например, создать 10 файлов с разными именами, или переименовать, или добавить в vxvm диски, присвоив им новые имена, или отформатировать последовательно диски с командной строки на дисковом массиве, ну и т.д. Самый простой и правильный способ — это использовать команду seq, но к сожалению, ее в solaris по умолчанию нет.
Итак, несколько примеров, как напечатать цифры от 1 до 10:

Эти генерилки работают везде
$ i=0; while [ $i -lt 11 ]; do echo $i; i=`expr $i + 1` ; done
$ for i in  1 2 3 4 5 6 7 8 9 10; do echo $i; done
$ perl -e 'print "$_\n" foreach(1..10)'

Эта работает только в bash
$ for (( i = 1; i < 11; i++ )); do echo $i; done

а эта только в linux
$ seq 1 10

2 комментария на запись “Как в shell сгенерировать последовательность”

  1. niam пишет:

    Также такой цикл поможет сгенерировать последовательность:
    for i in {0..11}; do echo $i; done

  2. ikorolev пишет:

    Это тоже только в bash