Seu heredoc nunca termina, pois o terminador não está no começo da linha.
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
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.
Tags debian shell-scripting