Если вам надо писать на баше, то надо делать ровно то, что надо, и не более. Баш достаточно буквальный язык.
Первая часть:
#!/bin/bash
# Создаем шаблон конфига из скрипта (без использования массива)
cat > ./syslog-template <<"EOF"
/var/log/syslog
{
rotate 10
size 10M
daily
missingok
copytruncate
notifempty
compress
delaycompress
sharedscripts
postrotate
invoke-rc.d syslog-ng reload > /dev/null
endscript
}
EOF
# Удаляем секцию из файла
sudo sed -i '/\/var\/log\/syslog/,/}/d' /etc/logrotate.d/syslog-ng
# Добавляем секцию в файл
# Тут, возможно, надо будет " | sudo tee -a" вместо пайпа
cat ./syslog-template >> /etc/logrotate.d/syslog-ng
# ^-- Вот эту команду можно совместить с первой, чтобы не создавать лишний файл
Вторая часть (не уверен, зачем она вообще нужна (так как изменения, внесенные первой частью, идемпотентны), но, раз вопрос так стоит, то пусть будет):
#!/bin/bash
# На момент вызова файл шаблона должен существовать
ORIGINAL=$(cat ./syslog-template)
EXISTING=$(sed -rne '/\/var\/log\/syslog/,/}/p' /etc/logrotate.d/syslog-ng)
[[ "$ORIGINAL" == "$EXISTING" ]] && echo "файл настроен" || echo "файл не настроен"