변수의 새 줄

변수의 새 줄

.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

관련 정보