本文介绍了\ n在Heredoc中的变量的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有什么方法可以让Bash Heredoc在Heredoc中解释"\ n \"吗?

Is there any way to for a Bash heredoc to interpret '\n\' in a heredoc?

我在循环中有一个迭代生成的字符串,类似

I have an iteratively built string in a loop, something like

for i in word1 word2 word3
do
        TMP_VAR=$i
        ret="$ret\n$TMP_VAR"
done

然后我要在Heredoc中使用创建的字符串:

and then I want to use the created string in a heredoc:

cat <<EOF > myfile
HEADER
==
$ret
==
TRAILER
EOF

但是我想将"\ n"字符解释为换行符,以便输出为

however I would like to interpret the "\n" character as newline, so that the output is

HEADER
==
word1
word2
word3
==
TRAILER

代替

HEADER
==
\nword1\nword2\nword3
==
TRAILER

有可能吗?还是应该以其他方式构建我的初始字符串?

Is it possible? Or should I perhaps build my initial string somehow otherwise?

推荐答案

在bash中,您可以使用$'\n'向字符串中添加换行符:

In bash you can use $'\n' to add a newline to a string:

ret="$ret"$'\n'"$TMP_VAR"

您还可以使用+=附加到字符串:

You can also use += to append to a string:

ret+=$'\n'"$TMP_VAR"

这篇关于\ n在Heredoc中的变量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-23 04:38