bashの一部の変数は置き換えられ、他の変数は置き換えられないドキュメントを作成する方法はありますか?

bashの一部の変数は置き換えられ、他の変数は置き換えられないドキュメントを作成する方法はありますか?

bashでhereドキュメントを生成してスクリプト内のファイルに出力する方法があるかどうか疑問に思います。問題は、この設定ファイルで$で始まるいくつかの変数を出力しようとしていることです。私が持っている他の変数はそうではありません。

たとえば、説明します。

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>

これは、変数を置き換えたい他の設定ファイルがたくさんありますが、独自の変数もたくさんあるため、置き換えたくない多くの例の1つです。

答え1

Escapeを$使用すると、bashに変数の先頭ではなくリテラル文字として扱うことができます。

\これを行うには、バックスラッシュ()文字を使用できます。

したがって、以下を使用してください。

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

ここのドキュメントにあります。

関連情報