我正在尝试在我的计算机上自动创建虚拟主机。这只是 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