.sh 파일을 사용하여 구성 파일을 생성하고 싶습니다. 새 행을 삽입하는 방법을 모르겠습니다.
이미 가지고 있는 코드:
domainconf='<VirtualHost *:80>\n ServerName '$fulldomain'\n DocumentRoot '$fullpath'\n </VirtualHost>'
echo $domainconf > /etc/apache2/sites-available/"$fulldomain".conf
답변1
구성을 파일에 작성하기만 하면 다음 내용이 더 읽기 쉽고 변수가 필요하지 않습니다.
cat >/etc/apache2/sites-available/"$fulldomain".conf <<END_CONFIG
<VirtualHost *:80>
ServerName '$fulldomain'
DocumentRoot '$fullpath'
</VirtualHost>
END_CONFIG
변수에 꼭 필요한 것이 있는 경우:
conf=$(cat <<END_CONFIG
<VirtualHost *:80>
ServerName '$fulldomain'
DocumentRoot '$fullpath'
</VirtualHost>
END_CONFIG
)
echo "$conf" >/etc/apache2/sites-available/"$fulldomain".conf
답변2
또 다른 옵션은 스크립트에 리터럴 줄 바꿈을 포함하는 것입니다.
% cat newl
blah='x
y
z'
echo "$blah"
% sh newl
x
y
z
%
따옴표를 주의하세요 $blah
!
답변3
에코하려면 "-e" 플래그를 사용하세요.
domainconf='<VirtualHost *:80>\n ServerName '$fulldomain'\n DocumentRoot '$fullpath'\n </VirtualHost>'
echo -e "$domainconf" > /etc/apache2/sites-available/"$fulldomain".conf
답변4
echo
다음으로 교체해 보세요 .printf
domainconf='<VirtualHost *:80>\n ServerName '$fulldomain'\n DocumentRoot '$fullpath'\n </VirtualHost>'
printf "$domainconf" > /etc/apache2/sites-available/"$fulldomain".conf