최근 bash에서 다음 명령을 발견했습니다.
cat > filename << EOF
<< EOF
이 부분 이 이해가 안 돼요 . 인터넷 검색 <<
연산자에서 정규 왼쪽 시프트 연산만 발견했습니다. 그것을 가지고 놀아도 나에게 어떤 통찰력도 주지 못했습니다.
어떤 설명이라도 대단히 감사하겠습니다!
답변1
설명은 here document
다음과 같습니다 man bash
.
Here Documents
This type of redirection instructs the shell to read input from
the current source until a line containing only delimiter (with
no trailing blanks) is seen. All of the lines read up to that
point are then used as the standard input for a command.
The format of here-documents is:
<<[-]word
here-document
delimiter
No parameter and variable expansion, command substitution,
arithmetic expansion, or pathname expansion is performed on
word. If any characters in word are quoted, the delimiter is
the result of quote removal on word, and the lines in the
here-docu- ment are not expanded. If word is unquoted, all
lines of the here-document are subjected to parameter
expansion, command substitution, and arithmetic expansion, the
character sequence \<newline> is ignored, and \ must be used to
quote the char- acters \, $, and `.
If the redirection operator is <<-, then all leading tab
characters are stripped from input lines and the line
containing delimiter. This allows here-documents within shell
scripts to be indented in a natural fashion.
사용 예:
$ cat > filename << EOF
> Write this line to filename
> And this line
> And this
> EOF
$ cat filename
Write this line to filename
And this line
And this