Ulu*_*kai 1 bash variable-substitution here-document
我想知道是否有任何方法可以在 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>
Run Code Online (Sandbox Code Playgroud)
这是众多示例之一,我有许多其他配置文件要替换其中的变量,但它们本身有很多自己的变量,因此我不想替换它们。
您可以转义$
,强制 bash 将其视为文字字符而不是变量的开头。
您可以使用反斜杠 ( \
) 字符执行此操作。
所以使用这个,:
RedirectMatch /(.*) https://$WEBSITENAME/\$1
Run Code Online (Sandbox Code Playgroud)
在此处的文档中。