On Sun, Jul 13, 2008 at 02:34:41PM +0400, Alexey Tourbin wrote: > On Sun, Jul 13, 2008 at 02:14:04PM +0400, Aleksey Avdeev wrote: > > Похоже есть выход: rpm --eval %%<макрос> нормально отрабатывает внутри > > спека. (Ограничение: макросы должны предоставляться другим пакетом.) > > > > Попробую реализовать такой алгоритм: > > > > 1. Выдернуть из файлов используемые макросы (sed/awk). > > > > 2. Сформировать sed программу с таблицей замен. > > > > 3. Прогнать её по файлам. > > rpm --eval "$(cat file)" Также имейте в виду, что Command Substitution в шелле (см. man sh) отрезает все '\n' в самом конце вывода ("any trailing newlines deleted"). Обычно это компенсируется тем, что команда, которая печатает значение, сама по себе добавляет '\n' в конце (как в случае и с `rpm --eval', а также напр. echo). Тем не менее, надёжное (в строгом смысле) программирование на шелле вследствие этого невозможно.