在任何地方结束此处文档

在任何地方结束此处文档

正如标题所示,是否可以在任何地方结束此处文档,而不仅仅是在新行上?

通常heredocs的用法如下:

$ cat << 'EOF'
First line
  Seconde line
EOF

输出结果为:

First line
  Seconde line

有没有办法在分隔符位于行尾时停止读取?这将允许我做类似的事情:

$ cat << 'EOF'
First line
  Seconde lineEOF

答案1

我能想到的唯一方法是这样的:

text=$(cat << EOF
line 1\x0a\
line 2\x0a\
line 3
EOF
)
echo -en $text

甚至更短

echo -en "$(cat << EOF
line 1
line 2
line 3
EOF
)"

相关内容