Qualquer forma de criar Aqui Documentos que substituem algumas variáveis mas não outras no bash?

1

Eu queria saber se existe alguma maneira de criar um documento aqui no bash para a saída para um arquivo dentro de um script, o problema é que neste arquivo de configuração eu estou tentando saída algumas variáveis que começam com $ eu quero substituir, enquanto outros eu não faço.

Deixe-me ilustrar:

cat >> /opt/apache2/sites-available/$WEBSITENAME <<END-OF-FILE
 ServerName $WEBSITENAME #This I want to replace


<VirtualHost *:80>

 ServerName $WEBSITENAME # And this
 ServerAlias *.xxx.com

RedirectMatch /(.*) https://$WEBSITENAME/$1 # But not the $1 here

 CustomLog /var/log/apache2/access.log combined

</VirtualHost>

Este é um dos muitos exemplos, eu tenho muitos outros arquivos de configuração que eu quero substituir variáveis, mas eles mesmos têm muitas variáveis próprias, então eu não quero substituí-los.

    
por Ulukai 08.03.2016 / 12:46

1 resposta

5

Você pode escapar do $ , forçando o bash a tratá-lo como um caractere literal e não como o início de uma variável.

Você faz isso com o caractere de barra invertida ( \ ).

Então use isso:

RedirectMatch /(.*) https://$WEBSITENAME/\

no documento aqui.

    
por 08.03.2016 / 12:50