Назад | Перейти на главную страницу

Что случилось? «Синтаксическая ошибка: неожиданный конец файла»

Я все время получаю эту ошибку, вы знаете, что не так?

rapache это псевдоним для перезапуска apache

mugbear:/usr/bin# cat /usr/bin/mkdomain                                         
if [ -d "/srv/www/$1" ]; then
        echo "Domain $1 already exists!"
else
        mkdir -p /srv/www/$1/public_html
        mkdir -p /srv/www/$1/logs
        cat >> /etc/apache2/sites-available/"$1" << EOF
        <VirtualHost removed:80>
                ServerAdmin support@$1
                ServerName $1
                ServerAlias www.$1
                        DocumentRoot /srv/www/$1/public_html/
                ErrorLog /srv/www/$1/logs/error.log
                CustomLog /srv/www/$1/logs/access.log combined
        </VirtualHost>
        EOF
        a2ensite $1
    rapache
fi
mugbear:/usr/bin# mkdomain test.com                                        
/usr/bin/mkdomain: line 19: syntax error: unexpected end of file
someFile <<EOF
...
EOF

работает


    someFile <<EOF
    ...
    EOF

не будет работать


    someFile <<-EOF
    ...
    EOF

работает


Видеть 'мужикСправочное руководство по Bash, раздел «3.6.6 Здесь документы» для подробностей о <<-EOF. Обратите внимание, что отступ терминатора heredoc должен делаться с использованием табуляции, а не пробелов.

Ваш heredoc никогда не заканчивается, так как терминатор не находится в начале строки.