O que está errado? “Erro de sintaxe: final inesperado do arquivo”

3

Eu continuo recebendo este erro, vocês sabem o que está errado?

rapache é um alias para reiniciar o 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
    
por Doug 31.10.2010 / 05:42

2 respostas

3

Seu heredoc nunca termina, pois o terminador não está no começo da linha.

    
por 31.10.2010 / 06:09
3
someFile <<EOF
...
EOF

funciona

    someFile <<EOF
    ...
    EOF

não funcionará

    someFile <<-EOF
    ...
    EOF

funciona

Veja ' man bash ' e o Bash Reference Manual, seção "3.6.6 Here Documents" para detalhes sobre <<-EOF . Observe que o recuo do terminador heredoc deve ser feito usando tabulações, não espaços.

    
por 24.03.2011 / 17:12