[an error occurred while processing this directive]

Шаблонизатор на shell
Часто для целей серверной автоматизации требуется генерация конфигурационных файлов.

Предлагается использовать для этих целей следующую shell-конструкцию

*BSD:

   #!/bin/sh
   config_file='test.conf'
   template_file='mytemplate'
   myvar1='variable 1'
   template=`cat ${template_file}`
   eval "echo \"${template}\"" > ${config_file}


Linux:

   #!/bin/bash
   config_file='test.conf'
   template_file='mytemplate'
   myvar1='variable 1'
   template=`cat ${template_file}`
   eval "echo \"${template}\"" > ${config_file}

Переменная template_file содержит путь к шаблону, остальные переменные - данные для шаблона. 
Последная строчка - ничто иное, как "движок" шаблонизатора, eval-вычисление строки-шаблона.

Пример шаблона:

   myvar = ${myvar1}
   this is a \" quotes test \"
   $(
    if [ ! -z ${myvar2} ]; then
     echo "myvar2 is set and its value = ${myvar2}"
    fi
   )
   
Важно отметить, что в шаблоне следует экранировать кавычки.
В шаблоне можно использовать не только подстановки значений, но и управляющие конструкции, 
заключенные в скобки (см. пример шаблона).
 
13.05.2009 , Автор: Denis Nasyrtdinov , Источник: http://diso-go-go.livejournal.com...
Ключи: shell, template
Раздел:    Корень / Программисту и web-разработчику / Shell / Готовые скрипты

[an error occurred while processing this directive]

[an error occurred while processing this directive]