현대 스크립트 언어에서 많이 차용되고 있는 주목할 만한 언어구조 중에 'Here Document'라른 것이 있다.
정확한 기원은 어디인지 모를겠지만 오래전 버젼의 bash에서부터 사용되어 온 것 같다. 널리 사용되면서
그 유용성이 인정받아 대부분의 현대적인 스크립트 언어에서 널리 사용되고 있다.


이것은 (매우 장황한) 문자열을 처리하기 쉽도록 한 언어구조로서 bash에서는 다음과 같이 사용되고 있다.

HereDoc_1.png


위의 예는 bash-script의 usage함수에 응용한 것이다. cat 뒤에 '<<'가 오고 다음 아이디('TXT')가 온다.
다음줄 부터 사용자가 지정한 아이디 'TXT'가 오는 줄 전까지를 그대로 문자열로 인식하라는 의미이다.


인식된 문자열은 cat의 stdin으로 들어가게 되어 결국은 문자열은 stdout으로 출력되는 형태이다.

다른 스크립트언어에서도 이와 비슷한 방법으로 사용된다. perl에서의 사용을 보면 다음과 같다.

HereDoc_2.png


'<<TXT'라는 것은 다음줄부터 'TXT'까지의 문자열로 치환된다.
PHP에서도 비슷하다. 단지 '<<'대신 '<<<'를 사용했을 뿐이다.

HereDoc_3.png


Usage함수이외에 HereDoc의 또 다른 응용으로서 script-generation을 들 수 있다.

다음 스크립트는 make script의 특정부분을 지정하여 플랫폼에 맞는 script를 만들어 준다.
변경을 위해 지정할 수 있는 파라메터는 다음과 같다.
    a) (linux) kernel configuration
    b) object파일을 위한 디렉토리 지정
    c) tool-chain지정

이것은 단지 예시적인 것이고 변경가능한 파라메터를 지정하는 것은 개발자의 몫이다.

HereDoc_4.png


다음은 실행하는 방법를 보여주고 있다.

HereDoc_5.png