
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
Escape 를 $
사용하면 bash가 이를 변수의 시작 부분이 아닌 리터럴 문자로 처리하도록 할 수 있습니다.
\
이를 수행하려면 백슬래시( ) 문자를 사용할 수 있습니다 .
따라서 다음을 사용하십시오.
RedirectMatch /(.*) https://$WEBSITENAME/\$1
여기 문서에 있습니다.