여러 줄 텍스트를 명령에 입력으로 주거나 변수에 담는 「heredoc」.
셸 스크립트에서 SQL·HTML·설정 파일을 인라인으로 작성할 때 매우 유용.
기본.
command << EOF / 여러 줄 / 텍스트 / EOF — << 다음 단어가 종료 마커, 그 단어가 줄 단독으로 나타날 때까지의 모든 줄을 입력으로.
EOF는 관례적 이름이지만 어떤 단어든 가능.
변수 확장.
기본은 변수 확장됨 — << EOF 안에 $name 쓰면 확장.
확장 안 하려면 종료 마커를 따옴표로 — << 'EOF' 또는 << "EOF".
정확한 텍스트(예: 셸 코드 자체) 출력 시.
활용.
1) cat << EOF > file.txt / 여러 줄 / EOF — 파일에 쓰기.
2) ssh server << EOF / 명령들 / EOF — 원격에 여러 명령 실행.
3) mysql << SQL / SELECT * FROM ...
/ SQL — DB 명령.
변형 — herestring (<<<).
단일 문자열 입력.
cat <<< "hello" — 「hello」가 cat의 stdin.
grep "foo" <<< "$var" 같이 변수를 stdin으로.
heredoc보다 짧지만 한 줄만.
한 줄 요약
heredoc은 여러 줄을 명령 입력으로.
<< EOF ...
EOF, 'EOF' 인용 시 변수 확장 안 됨.
파일 쓰기·SSH 원격·DB 명령에 자주.
herestring(<<<)은 단일 문자열.
더 알아볼 것
- <<- (들여쓰기 허용)
- heredoc 안의 따옴표
- python·perl 인라인 호출