heredoc 내부의 변수를 바꾸지 않으려는 bash 스크립트로 작업하고 있습니다. heredoc을 A) 변수 이름을 구문 분석하는 대신 이스케이프 처리하거나 B) 전체 문자열을 그대로 유지하려면 어떻게 설정합니까?
cat > /etc/nginx/sites-available/default_php <<END
server {
listen 80 default;
server_name _;
root /var/www/$host; <--- $host is a problem child
}
END
그대로 파일에 주입을 마치면 다음과 같이 남습니다.
server {
listen 80 default;
server_name _;
root /var/www/;
}
답변
로부터 bash(1)
매뉴얼 페이지
단어의 문자 가 따옴표로 묶이면 구분 기호 는 word 에서 따옴표를 제거한 결과이며 여기 문서의 줄은 확장되지 않습니다.
cat > /etc/nginx/sites-available/default_php <<"END"
답변
백 슬래시와 함께 :
cat > /tmp/boeboe <<END
server {
listen 80 default;
server_name _;
root /var/www/\$host';
}
END