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)

ここでは、ドキュメントはタグの次の行(任意の単語で置き換え<<EOF可能)で始まり、そのタグを完全に含む行(インデントは許可されていません)で終わります。テンプレート内では、二重引用符内の文字と同じ文字は特別です(保護する必要があるバックティックに注意してください)。EOFEOF"$`\\`

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

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

関連情報