我一直收到这个错误,你们知道哪里出了问题吗?
rapache
是 restart 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
答案1
由于终止符不在行首,因此您的 heredoc 永远不会结束。
答案2
someFile <<EOF
...
EOF
作品
someFile <<EOF
...
EOF
不管用
someFile <<-EOF
...
EOF
作品
看 '男子猛击' 和Bash 参考手册,“3.6.6 此处文档”部分详细信息请<<-EOF
参见。请注意,heredoc 终止符的缩进必须使用制表符而不是空格来完成。