Возможно, это то, что вы хотите (не проверено).
Во-первых, все в одном скрипте со встроенным шаблоном:
Shell-скрипт make_conf_file.sh
:
#/bin/bash
export CONF_FILE=${1}
export TEMPLATE_IP=${2}
export TEMPLATE_PORT=${3}
export TEMPLATE_SRVR1=${4}
export TEMPLATE_SRVR2=${5}
export TEMPLATE_ACCESS_LOG=${6}
cat <<END > ${CONF_FILE}
server {
listen ${TEMPLATE_IP}:${TEMPLATE_PORT};
server_name ${TEMPLATE_SRVR1) ${TEMPLATE_SRVR2};
access_log ${TEMPLATE_ACCESS_LOG} main;
root html;
}
END
Затем запустите как:
./make_conf_file.sh /tmp/f1.conf 192.168.1.2 80 domain1.com www.domain1.com logs/domain1.access.log
Или, если вы хотите использовать файлы шаблона внешнего определения:
template.dat:
server {
listen TEMPLATE_IP:TEMPLATE_PORT;
server_name TEMPLATE_SRVR1 TEMPLATE_SRVR2;
access_log TEMPLATE_ACCESS_LOG main;
root html;
}
Сценарий оболочки make_conf_file.sh
:
#/bin/bash
export CONF_FILE=${1}
export TEMPLATE_FILE=${2}
export TEMPLATE_IP=${3}
export TEMPLATE_PORT=${4}
export TEMPLATE_SRVR1=${5}
export TEMPLATE_SRVR2=${6}
export TEMPLATE_ACCESS_LOG=${7}
sed "s/TEMPLATE_IP/${TEMPLATE_IP}/" ${TEMPLATE_FILE} | \
sed "s/TEMPLATE_PORT/${TEMPLATE_PORT}/" | \
sed "s/TEMPLATE_SRVR1/${TEMPLATE_SRVR1}/" | \
sed "s/TEMPLATE_SRVR2/${TEMPLATE_SRVR2}/" | \
sed "s/TEMPLATE_ACCESS_LOG/${TEMPLATE_ACCESS_LOG}/" \
> ${CONF_FILE}
Затем запустите как:
./make_conf_file.sh /tmp/f1.conf template.dat 192.168.1.2 80 domain1.com www.domain1.com logs/domain1.access.log