Вы можете использовать mustache(1) для замены кучи переменных шаблона:
$ { echo ---; sed 's/=/: /' config; echo --- } \
| mustache - <(sed -e 's/<%= @/{{/g' -e 's/%>/}}/g' template)
Первый элемент трубы переводит ваши конфигурационные назначения в синтаксис YAML, который понимает мой mustache. Вторая команда sed
заменяет ссылки на переменные стиля на переменные mustache
{{ VAR }}
.
На Fedora, mustache
является частью пакета rubygem-mustache
.
В качестве альтернативы вы можете использовать envsubst
(предоставляется пакетом gettext
), например:
$ ( export $(cat config) ; sed -e 's/<%= @\([^%]*\) %>/${\1}/g' template
| envsubst )
Требуется, чтобы ваши назначения переменных были действительны и в оболочке.