apache conf 文件的 bash 脚本的模板值

apache conf 文件的 bash 脚本的模板值

我正在尝试在我的计算机上自动创建虚拟主机。这只是 bash 脚本的学习经历。我目前是新手。我正在尝试更多地了解 awk、sed。

不管怎样,这是我的conf文件。从命令行查找和替换的最有效方法是什么?我最终将用标记替换某些表单,例如 {DOMAIN} 和 {PATH}

NameVirtualHost commerce.l:*

<Directory "/home/chris/workspace/dev.commerce/html">
        Options Indexes Includes execCGI
        AllowOverride All
        Order Allow,Deny
        Allow From All
</Directory>

<VirtualHost commerce.l>
    DocumentRoot /home/chris/workspace/dev.commerce/html
    ServerName commerce.l
    ErrorLog logs/commerce.error
    <IfModule mod_rewrite.c>
        <Directory "/home/chris/workspace/dev.commerce/html">
            RewriteEngine on
            # needed by Drupal 7 for "clean URLs"
            RewriteCond %{REQUEST_FILENAME} !-f
            RewriteCond %{REQUEST_FILENAME} !-d
            RewriteCond %{REQUEST_URI} !=/favicon.ico
            RewriteRule ^ index.php [L]
        </Directory>
    </IfModule>
</VirtualHost>

PS 我使用的是 Ubuntu 11.04 natty

答案1

这看起来像是一份工作此处文档:在脚本中包含模板,并$variable_name在您想要替换变量或$(shell-command)替换任何 shell 命令的输出时使用。

此处文档从标记后面的行开始<<EOF(可以EOF用任何单词替换),并以完全包含该行的行结束EOF(不允许缩进)。在模板内部,相同的字符与双引号内的字符是特殊的:("$`\注意反引号,需要对其进行保护\`)。

DOMAIN=commerce.l
PATH=/home/chris/workspace/dev.commerce/html
cat >>/etc/apache/sites-available/$DOMAIN
NameVirtualHost $DOMAIN:*

<Directory "$PATH">
</VirtualHost>
EOF

相关内容