Команда IT специалистов выполнит подготовку инфраструктуры для вашего бизнеса.
Внедрение самых передовых решений и технологий.
Поддержка и сопровождение ваших сервисов.
Выполнение работ под "ключ", от покупки сервера, до настройки автоматизации процессов.
8(977)608-78-62 adm@nixm.ru

Итерация в bash

Ответить
Аватара пользователя
nezabudka
Местный говорун
Местный говорун
Сообщения: 618
Зарегистрирован: 18 апр 2015, 06:13
Откуда: Ростов на Дону

Итерация в bash

Сообщение 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;
Последний пример я включила потому что мне он показался интересным.
В высше приведенных примерах все интервалы, кроме последнего, способны
правильно использовать значения переменных на любых позициях этих конструкций.
Шаг последовательности параметр не обязательный и по дефолту равен единице.
Последний раз редактировалось nezabudka 13 дек 2015, 10:18, всего редактировалось 1 раз.
"I invented the term Object-Oriented and I can tell you I did not have C++ in mind." - Alan Kay
Аватара пользователя
Oleg65
Местный говорун
Местный говорун
Сообщения: 859
Зарегистрирован: 18 янв 2015, 10:56
Откуда: г.Коломна Моск.обл.

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

Сообщение Oleg65 »

Ну, Вы как-то сразу всех поставили в рамки... А eval, например? Или интерес конкретно к этой конструкции?
Аватара пользователя
nezabudka
Местный говорун
Местный говорун
Сообщения: 618
Зарегистрирован: 18 апр 2015, 06:13
Откуда: Ростов на Дону

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

Сообщение nezabudka »

Oleg65 писал(а):Ну, Вы как-то сразу всех поставили в рамки... А eval, например? Или интерес конкретно к этой конструкции?
Интересный прием выступать от имени всех
Если внимательно посмотрите, то как раз увидите в моих примерах
конструкцию с eval
"I invented the term Object-Oriented and I can tell you I did not have C++ in mind." - Alan Kay
Аватара пользователя
Oleg65
Местный говорун
Местный говорун
Сообщения: 859
Зарегистрирован: 18 янв 2015, 10:56
Откуда: г.Коломна Моск.обл.

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

Сообщение Oleg65 »

Виноват, не углядел с разбегу... :oops:
Аватара пользователя
nezabudka
Местный говорун
Местный говорун
Сообщения: 618
Зарегистрирован: 18 апр 2015, 06:13
Откуда: Ростов на Дону

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

Сообщение nezabudka »

Oleg65. Тогда с вас новая тема :)
"I invented the term Object-Oriented and I can tell you I did not have C++ in mind." - Alan Kay
Шпак Дмитрий
Местный говорун
Местный говорун
Сообщения: 579
Зарегистрирован: 19 янв 2015, 15:56
Откуда: Russian_federation, какой то

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

Сообщение Шпак Дмитрий »

Всегда юзаю (( )), самый удобный и самый быстрый вариант и работает пост-декремент, и можно сразу с несколькими переменными работать, коротко и удобно.
Аватара пользователя
nezabudka
Местный говорун
Местный говорун
Сообщения: 618
Зарегистрирован: 18 апр 2015, 06:13
Откуда: Ростов на Дону

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

Сообщение nezabudka »

Шпак Дмитрий писал(а):Всегда юзаю (( )), самый удобный и самый быстрый вариант и работает пост-декремент, и можно сразу с несколькими переменными работать, коротко и удобно.
Согласна, но дело все в том что приходится не только писать но читать и работать
с чужим кодом.
"I invented the term Object-Oriented and I can tell you I did not have C++ in mind." - Alan Kay
Шпак Дмитрий
Местный говорун
Местный говорун
Сообщения: 579
Зарегистрирован: 19 янв 2015, 15:56
Откуда: Russian_federation, какой то

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

Сообщение Шпак Дмитрий »

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

Это ты права. :give_rose:
Ответить

Вернуться в «Bash»