The “here document” feature allows a multi-line string to be defined as input to a command:
$ cat <<_EOT_
Lorem ipsum dolor sit amet,
consectetur adipiscing elit.
Morbi quis rutrum nisi, nec dignissim libero.
_EOT_
Lorem ipsum dolor sit amet,
consectetur adipiscing elit.
Morbi quis rutrum nisi, nec dignissim libero.
The Bash manual section on here documents describes an option to allow indentation in the source, and strip it when the text is is read:
Here Documents
[…]
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.
Which looks like this:
$ cat <<-_EOT_
Lorem ipsum dolor sit amet,
consectetur adipiscing elit.
Morbi quis rutrum nisi, nec dignissim libero.
_EOT_
Lorem ipsum dolor sit amet,
consectetur adipiscing elit.
Morbi quis rutrum nisi, nec dignissim libero.
The problem with that is it will strip only TAB (U+0009) indentation, not spaces. That is a severe limitation if your coding style forbids TAB characters in source code :-(