일부 HTML 코드를 텍스트/HTML 파일에 반영하는 쉬운 방법이 있습니까?
나는하려고합니다 :
echo "<!DOCTYPE html>\n<html>\n\t<body>\n\t\t<h1>Hello World!</h1>\n\t</body>\n</html>" > index.html
하지만 다음을 얻으세요:
-bash: !DOCTYPE: event not found
답변1
!
bash는 작은 따옴표를 특수 문자로 해석하므로 작은 따옴표를 사용하십시오.
또한 백슬래시 이스케이프가 해석되도록 -e
with를 사용하세요.echo
\n
echo -e '<html>\n<html>\n\t<body>\n\t\t<h1>Hello World!</h1>\n\t</body>\n</html>' > index.html
답변2
큰따옴표 대신 작은따옴표를 사용하면 이 문제를 해결할 수 있습니다. 따라서 예상대로 작동해야 합니다.
echo '<!DOCTYPE html>\n<html>\n\t<body>\n\t\t<h1>Hello World!</h1>\n\t</body>\n</html>' > index.html
작은따옴표를 사용하면 bash는 특수 문자를 해석하지 않고 리터럴 문자열만 유지합니다.
답변3
bash
트리거 기록 확장을 사용하고 있습니다 !
. 히스토리 확장 off 를 사용하거나 set +H
작은 따옴표로 묶은 문자열을 사용하거나 여기 문서를 사용하여 HTML을 작성하십시오.
$ cat <<'END_HTML' >index.html
<!DOCTYPE html>
<html>
<body>
<h1>Hello World!</h1>
</body>
</html>
END_HTML
또는 인코딩된 탭과 줄 바꿈을 있는 그대로 작성하려면 다음을 수행하세요.
$ cat <<'END_HTML' >index.html
<!DOCTYPE html>\n<html>\n\t<body>\n\t\t<h1>Hello World!</h1>\n\t</body>\n</html>
END_HTML
이 문서에서는 기록 확장이 실행되지 않습니다 bash
.