내용을 복사한 경우
httpd.conf
그런 다음 cat 명령에 붙여넣으세요. 예를 들면 다음과 같습니다.
#!/bin/bash
cat > /test << EOF
pasted here..
EOF
다음 오류가 발생합니다.
-bash: command substitution: line 1: unexpected EOF while looking for matching `''
-bash: command substitution: line 4: syntax error: unexpected end of file
어쩌면 해결책은 달러 기호나 따옴표 등을 피하는 것일 수도 있습니다.
하지만 파일이 너무 크기 때문에 달러 기호를 자동으로 이스케이프할 수 있나요?
다른 프로그램을 통해 이스케이프 처리한 다음 cat 명령에 제공하는 유일한 옵션이 있습니까?
답변1
"EOF" 문자열 주위에 따옴표를 사용하십시오.
cat > /test <<'EOF'
stuff $(pwd)
EOF
산출
stuff $(pwd)
문자 그대로.
보다배쉬 매뉴얼이 문서에. 종료자 문자열에 따옴표가 있으면 본문의 확장 및 대체가 방지됩니다.
답변2
다음 예에서 두 문서를 비교하십시오.
(yeti@darkstar:6)~/wrk/tmp$ cat ./xyzzy
#!/bin/bash
cat << EOF
Version 1 - Today is $(date)
EOF
cat << 'EOF'
Version 2 - Today is $(date)
EOF
(yeti@darkstar:6)~/wrk/tmp$ ./xyzzy
Version 1 - Today is Sa 21. Jun 08:51:38 CEST 2014
Version 2 - Today is $(date)