如何打印新行?这只会打印\n:

$ echo -e "Hello,\nWorld!"
Hello,\nWorld!

当前回答

其他解决方案:

在某些情况下,您必须回显多行长内容(例如代码/配置)

例如:

生成代码/配置的Bash脚本

echo-e,printf可能有一些限制

您可以使用一些特殊字符作为占位符作为换行符(例如~),并在使用tr创建文件后替换它:

echo ${content} | tr '~' '\n' > $targetFile

它需要调用另一个程序(tr),这应该很好,IMO。

其他回答

要打印带有回音的新行,请使用:

echo

or

echo -e '\n'

如果您正在编写脚本,并且将多次将换行符作为其他消息的一部分进行回显,那么一个不错的跨平台解决方案是在变量中添加一个文本换行符,如下所示:

newline='
'

echo "first line${newline}second line"
echo "Error: example error message n${newline}${usage}" >&2 #requires usage to be defined

简单地键入

echo

获得一条新线路

Bash 4.4中添加了一个新的参数扩展,用于解释转义序列:

${parameter@operator}-E操作员展开是一个字符串,它是参数的值反斜杠转义序列扩展为$“…”引号机械装置

$ foo='hello\nworld'
$ echo "${foo@E}"
hello
world
str='hello\nworld'
$ echo | sed "i$str"
hello
world