Literal Here Doc
When shell encounters the syntax << 'delimiter'
or << "delimiter"
, it starts creating a multi-line buffer using these rules:
A line containing exactly
delimiter
ends the contentsEscape sequences are not expanded (e.g.,
\t
is not translated into a literalTAB
)Variables are not expanded (e.g.,
$foo
remains$foo
)Command substitutions are not performed (e.g.,
$(date)
and`date`
remain unchanged)
The buffer created is sent as stdin
to the program of your choice. For example:
1 #!/bin/sh
2 cat << 'EOF'
3 $bird $(is) `\t\h\e` ${word}
4 EOF
Produces:
$bird $(is) `\t\h\e` ${word}
Last updated
Was this helpful?