为什么bash(但不是破折号)丢失命令替换内的heredoc中的换行符?
在 bash 中运行时,此命令:
cat <<EOF
hello
world
EOF
将按我的预期输出:
hello
world
hello
world
但是这个输出hello world(没有换行符),并且出乎意料:
如果我用破折号运行第二个命令,那么输出是预期的(带有换行符)。
为什么在 bash 的第二个命令中删除了换行符?
在 bash 中运行时,此命令:
cat <<EOF
hello
world
EOF
将按我的预期输出:
hello
world
hello
world
但是这个输出hello world(没有换行符),并且出乎意料:
如果我用破折号运行第二个命令,那么输出是预期的(带有换行符)。
为什么在 bash 的第二个命令中删除了换行符?