On Fri, Aug 04, 2006 at 07:28:31PM +0300, Andrew Kornilov wrote: > Sergey Vlasov wrote: > >Вариант с использованием имён в нижнем регистре здесь не проходит > >из-за возможности конфликтов с локальными переменными функций etcnet, > >которые сейчас выглядят именно так (local в shell только сохраняет > >старое значение переменной, при этом доступ к старому значению > >пропадает до возврата из функции, где была использована команда > >local). > > > Да, с этим согласен, может где-то вылезти, хотя вероятность достаточно > низкая. Можно какой-то префикс для них использовать, можно поискать в > man bash что-нибудь интересное. Нет там ничего интересного - всё интересное в man perl (или tcl, или что ещё кому нравится). > На самом деле переопределение системных > переменных etcnet полезно и некоторые этим пользуются (я, например). Это > гибко и удобно. Для того же ppp/multicast ppp нужные разные > BASIC_PPPOPTIONS, раньше её не получалось менять, сейчас можно. Есть и > другие примеры, вплоть до переопределения функций (try_rmmod() одно > время пришлось пустой сделать, прямо в файле options, был глюк с > некоторыми драйверами сетевух, переставали работать, если была попытка > выгрузить модуль). В общем, тут или делать вид, что мы "заботимся" о > "неломаемости" и не давать такое делать или все-таки быть в меру гибкой > утилитой, а уж если админ не соображает, то он и в другом месте успешно > всё может разломать :) Копание в недокументированных переменных etcnet - это другой случай, когда вряд ли стоит обижаться на то, что при обновлении вдруг всё сломалось. Я имел в виду другую ситуацию - когда пользовательская переменная вдруг в новой версии etcnet начинает использоваться внутри самого etcnet; вот этого быть не должно. > >Подозреваю, что после добавления простых переменных захочется ещё и > >возможности засовывать в такие переменные более одного значения для > >автоматической генерации нескольких аналогичных строк. > > > Угадал, я такое тоже хотел изначально. Пока еще не придумал, как это > сделать красиво (хотя бы для себя). :) Тут ещё возникает вопрос - что делать, если в одной строке делается подстановка нескольких таких переменных? Возможны как минимум две интерпретации - декартово произведение (вложенные foreach) и параллельные списки (как foreach с несколькими списками в tcl).