Данный маленький скрипт выполняет две роли:
#!/bin/sh
# Здесь вписываются переменные для использования в шаблоне
# ...
IFS='' eval "rules=\"$(cat ~/firewall.template)\""
if [ -z "${rules}" ]
then
echo "Ошибка: файл правил пустой"
exit
fi
echo ${rules} > ~/firewall.rules
iptables-restore -tv ~/firewall.rules && ( \
echo; \
echo "Шаблон не содержит ошибок"; \
iptables-restore ~/firewall.rules; \
echo "Правила успешно загружены" \
)
Соответственно, в файле ~/firewall.template задаются правила в виде, который формирует команда iptables-save, но с возможностью использования переменных.
Дискуссия