이 문서의 형식은 다음과 같습니다.
<<[−]word
here-document
delimiter
이 문서를 표준 입력으로 사용하는 프로그램이 구분 기호를 보고 사용합니까?
아니면 bash에서만 구분 기호를 사용하고 이 문서를 표준 입력으로 입력하는 프로그램에서는 표시 및 사용되지 않습니까?
답변1
아니요, 외부 프로그램에서는 이를 볼 수 없습니다. 구분 기호는 스크립트를 실행하는 셸에서만 보고 사용할 수 있습니다.
답변2
이것은 쉘이 문서 구분 기호를 사용하는 곳이며 외부 프로그램은 이에 대해 전혀 모릅니다.
쉘이 해냈습니다토큰 인식그리고 여기에 문서 데이터를 프로그램에 전달합니다.
그리고 strace
:
$ strace -s 10 -e read cat <<-IN
1
IN
read(3, "\177ELF\2\1\1\3\0\0"..., 832) = 832
read(0, "1\n", 131072) = 2
1
read(0, "", 131072) = 0
+++ exited with 0 +++
여기에 보이는 문서 데이터만 볼 수 있습니다 cat
.