我想知道是否有任何方法可以在 bash 中创建一个此处文档以输出到脚本内的文件,问题是在这个配置文件中我试图输出一些以 $ 开头的变量我想替换,而其他变量我则这样做不是。
让我举例说明:
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
您可以转义$
,强制 bash 将其视为文字字符而不是变量的开头。
您可以使用反斜杠 ( \
) 字符来执行此操作。
所以用这个:
RedirectMatch /(.*) https://$WEBSITENAME/\$1
在此处的文档中。