Используя EOF для Шаблонной обработки сценария удара

Я пытаюсь создать простой сценарий, который генерирует файлы в /etc/apache2/sites-available каталог с помощью для цикла, и заставляет это делать это использование шаблона в рамках моего сценария. Это - то, на что похож отрывок моего сценария:

cat <<EOF > /etc/apache2/sites-available/${VHOST}.com.conf 
<VirtualHost *:80>
ServerName ${VHOST}.com
ServerAlias www.${VHOST}.com
ServerAdmin xxxxxx@xxxxxx.com
DocumentRoot /var/www/${VHOST}.com
ErrorLog ${APACHE_LOG_DIR}/${VHOST}_error.log
CustomLog ${APACHE_LOG_DIR}/${VHOST}_access.log combined
Options -Indexes
</VirtualHost>
EOF 

Примечание: $ {VHOST} является просто значением, указанным в моем для цикла.

Результат, которого я пытаюсь достигнуть, состоит в том, что шаблонный вывод будет отправлен в файл ${VHOST}.com.conf в рамках доступного сайтам каталога.

Мой выше отрывка не работает, и я получаю следующие ошибки:

./vhost.sh: line 21: warning: here-document at line 6 delimited by end-of-file (wanted `EOF')
./vhost.sh: line 21: syntax error near unexpected token `newline'
./vhost.sh: line 21: `<<-EOF <VirtualHost *:80>'

ОБНОВЛЕНИЕ:

Я следовал за предложением @PerlDuck путем обновления файла следующим образом

cat > /etc/apache2/sites-available/${VHOST}.com.conf <<-EOF
<VirtualHost *:80>
ServerName ${VHOST}.com
ServerAlias www.${VHOST}.com
ServerAdmin hunter@prepaidmeters.com
DocumentRoot /var/www/${VHOST}.com
ErrorLog ${APACHE_LOG_DIR}/${VHOST}_error.log
CustomLog ${APACHE_LOG_DIR}/${VHOST}_access.log combined
Options -Indexes
</VirtualHost>

Попытка cat > /etc/apache2/sites-available/${VHOST}.com.conf <<- "EOF" также не работал. Оба производят ту же ошибку.

./vhost.sh: line 22: warning: here-document at line 6 delimited by end-of-file (wanted `EOF')
./vhost.sh: line 23: syntax error: unexpected end of file
0
задан 10 August 2018 в 04:51

1 ответ

@PerlDuck решил мою проблему для меня. Это просто случай нежелательного пустого пространства. Этот дополнительный пробел после последнего EOF предотвращает завершение heredoc. Таким образом производя ошибку

./vhost.sh: line 22: warning: here-document at line 6 delimited by end-of-file (wanted `EOF')
./vhost.sh: line 23: syntax error: unexpected end of file

Помните детей! Пробел, пробел, пробел!

1
ответ дан 28 October 2019 в 04:32

Другие вопросы по тегам:

Похожие вопросы: