“此处文档”功能允许将多行字符串定义为命令的输入:
$ 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.
Bash 手册section on here documents 描述了一个允许在源代码中缩进的选项,并在阅读文本时将其剥离:
这里的文档
[…]
如果重定向操作符是<<-,那么所有前导制表符都会从输入行中去除,并且
包含分隔符的行。这允许 shell 脚本中的 here-documents 以自然方式缩进
时尚。
看起来像这样:
$ 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.
这样做的问题是它会删除 only TAB (U+0009) 缩进,而不是空格。如果您的编码风格禁止在源代码中使用 TAB 字符,那将是一个严重的限制:-(