Страница 1 из 1

Итерация в bash

Добавлено: 12 дек 2015, 13:52
nezabudka
Есть в bash конструкция {0..10} означающая последовательность
ряда цифр от 0 до 10 . Вывести ее очень просто

Код: Выделить всё

for i in {0..10}; do echo $i; done
Но вот вставить обычным образом интервалы в виде переменных
к сожалению не получается и строка вида

Код: Выделить всё

for i in {0..$max}
возвращает не ряд цифр а эту же конструкцию с цифрой хранящейся
в данной переменной.
Я подобрала основные заменители данной строки:

Код: Выделить всё

for (( i=0; i<=$max; i++ ));
for i in $(seq 1 2 $max); # второе число шаг(2)
for i in $(eval echo {1..$max..5}); #последнее число интервал(5)
for i in file{1..10..2}.txt;
Последний пример я включила потому что мне он показался интересным.
В высше приведенных примерах все интервалы, кроме последнего, способны
правильно использовать значения переменных на любых позициях этих конструкций.
Шаг последовательности параметр не обязательный и по дефолту равен единице.

Re: Итерация в bash

Добавлено: 13 дек 2015, 01:31
Oleg65
Ну, Вы как-то сразу всех поставили в рамки... А eval, например? Или интерес конкретно к этой конструкции?

Re: Итерация в bash

Добавлено: 13 дек 2015, 10:01
nezabudka
Oleg65 писал(а):Ну, Вы как-то сразу всех поставили в рамки... А eval, например? Или интерес конкретно к этой конструкции?
Интересный прием выступать от имени всех
Если внимательно посмотрите, то как раз увидите в моих примерах
конструкцию с eval

Re: Итерация в bash

Добавлено: 13 дек 2015, 16:00
Oleg65
Виноват, не углядел с разбегу... :oops:

Re: Итерация в bash

Добавлено: 13 дек 2015, 18:01
nezabudka
Oleg65. Тогда с вас новая тема :)

Re: Итерация в bash

Добавлено: 14 дек 2015, 10:59
Шпак Дмитрий
Всегда юзаю (( )), самый удобный и самый быстрый вариант и работает пост-декремент, и можно сразу с несколькими переменными работать, коротко и удобно.

Re: Итерация в bash

Добавлено: 16 дек 2015, 11:58
nezabudka
Шпак Дмитрий писал(а):Всегда юзаю (( )), самый удобный и самый быстрый вариант и работает пост-декремент, и можно сразу с несколькими переменными работать, коротко и удобно.
Согласна, но дело все в том что приходится не только писать но читать и работать
с чужим кодом.

Re: Итерация в bash

Добавлено: 16 дек 2015, 19:11
Шпак Дмитрий
nezabudka писал(а):
Шпак Дмитрий писал(а):Всегда юзаю (( )), самый удобный и самый быстрый вариант и работает пост-декремент, и можно сразу с несколькими переменными работать, коротко и удобно.
Согласна, но дело все в том что приходится не только писать но читать и работать
с чужим кодом.

Это ты права. :give_rose: