如何维护 (或以其他方式控制) heredoc 中命令的尾随空行 (在 bash 中)?随后的非空行的空行被正确保留。
考虑:
$ cat <<EOF
> $(echo -en "hi\n\n")
> EOF
hi
$ cat <<EOF
> $(echo -en "hi\n\nfoo\n")
> EOF
hi
foo
$
后面的空白hi
行去哪儿了?我怎样才能保留它?
直接调用echo
就可以得到想要的结果:
$ echo -en "hi\n\n"
hi
$
根据我的调查,这发生在命令替换中,但不发生在变量中...有什么想法为什么吗?
$ x=$'hi\n'
$ cat <<EOF
> ${x}
> EOF
hi
$