使用echo在bash脚本中编写多行文本

使用echo在bash脚本中编写多行文本,bash,shell,Bash,Shell,我使用的是安装了Bash5.0的最新版本macOS。我正在尝试编写一个bash脚本,它将使用变量&echo程序写出一个多行文本文档 我已尝试在脚本中的多个不同位置添加换行符,\n但似乎无法实现 正文= 一线 第二行 第三行 echo${text[@]}>>text.txt 我认为我应该能够使用echo程序输出一个包含多行的文件,因为当您删除变量并单独运行echo时,它会自动创建新行。就我而言,我得到的是: lineOne lineTwo lineThree 我希望的是: lineOne lin

我使用的是安装了Bash5.0的最新版本macOS。我正在尝试编写一个bash脚本,它将使用变量&echo程序写出一个多行文本文档

我已尝试在脚本中的多个不同位置添加换行符,\n但似乎无法实现

正文= 一线 第二行 第三行 echo${text[@]}>>text.txt 我认为我应该能够使用echo程序输出一个包含多行的文件,因为当您删除变量并单独运行echo时,它会自动创建新行。就我而言,我得到的是:

lineOne lineTwo lineThree
我希望的是:

lineOne
lineTwo
lineThree
尝试添加-e标志并对换行符使用\\n

text=(lineOne\\n lineTwo\\n lineThree)
echo -e "${text[@]}" >> text.txt

嘿,这对我来说真的很管用。谢谢!如果你不介意我问的话,-e标志实际上是做什么的?我见过它弹出几次,但当我打开它时,它并没有出现在我的手册页上。很高兴听到@makccr。-e标志允许解释反斜杠转义。不过,这样做的方式要好得多。您应该采用这种解决方案,这样就不必用换行符将数组弄乱:我不建议使用echo-e,因为不同版本的echo,甚至同一版本在不同情况下运行时的行为都不同。例如,某些版本将打印-e作为输出的一部分。请改用printf。您是否要求在单独的行上打印数组元素文本是数组!,或者您想知道如何在bash变量中存储多行字符串?