Templar valores para um script bash para arquivos conf do apache

3

Estou tentando automatizar a criação de vhosts no meu computador. Esta é apenas uma experiência de aprendizado para o script bash. Eu sou atualmente novato. Estou tentando aprender mais sobre o awk, sed.

De qualquer forma, este é o meu arquivo conf. Qual seria a maneira mais eficiente de encontrar e substituir a linha de comando? Eu eventualmente substituirei alguns formulários por tokens, como {DOMAIN} e {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>

P.S. Eu estou no Ubuntu 11.04 natty

    
por chrisjlee 29.06.2011 / 23:27

1 resposta

2

Isso parece um trabalho para um documento aqui : inclua o modelo em seu script e use $variable_name quando você deseja substituir variáveis, ou $(shell-command) para substituir a saída de qualquer comando shell.

O documento aqui começa na linha após o marcador <<EOF (você pode substituir EOF por qualquer palavra) e termina em uma linha que contém exatamente EOF (nenhum recuo permitido). Dentro do modelo, os mesmos caracteres são especiais como dentro de aspas duplas: "$'\ (observe o backquote, que precisa ser protegido \' ).

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

<Directory "$PATH">
…
</VirtualHost>
EOF
    
por 29.06.2011 / 23:51