Bash - Here Documents

> Procedural Languages > Bash Shell and (Unix|Linux) Utilities (XCU)

1 - About

Language - Here Document in Bash.

Here document in Bash is implemented through redirection. A redirection instructs the shell to read input from the current source until a line containing only word (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.

Advertising

3 - Format

The format of here-documents is:

<<[-]wordDelimiter 
  here-document
wordDelimiter

where:

  • « is the redirection operator
  • - (optional) is used 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.
  • wordDelimiter and wordDelimiter delimit the content of the here-document

3.1 - first WordDelimiter

No:

is performed on the first WordDelimiter.

Advertising

3.1.1 - Quoted

If the first wordDelimiter is:

In the latter case, the character sequence \<newline> is ignored, and \ must be used to quote the characters \, $, and .

3.2 - second WorldDelimiter

The second WorldDelimiter is generally the result of quote removal on the first WordDelimiter.

4 - Example

4.1 - FirstWorldDelimiter not quoted

foo="foo"
 
cat <<-HereDoc
 
   my Variable is $foo
 
HereDoc
my Variable is foo
Advertising

4.2 - FirstWorldDelimiter quoted

foo="foo"
 
cat <<-"HereDoc"
 
   my Variable is $foo
 
HereDoc
my Variable is $foo