如何打印新行?这只会打印\n:
$ echo -e "Hello,\nWorld!"
Hello,\nWorld!
如何打印新行?这只会打印\n:
$ echo -e "Hello,\nWorld!"
Hello,\nWorld!
当前回答
我只使用echo而不使用任何参数:
echo "Hello"
echo
echo "World"
其他回答
其他解决方案:
在某些情况下,您必须回显多行长内容(例如代码/配置)
例如:
生成代码/配置的Bash脚本
echo-e,printf可能有一些限制
您可以使用一些特殊字符作为占位符作为换行符(例如~),并在使用tr创建文件后替换它:
echo ${content} | tr '~' '\n' > $targetFile
它需要调用另一个程序(tr),这应该很好,IMO。
这最好作为
x="\n"
echo -ne $x
-e选项将解释转义序列的反斜杠-n选项将删除输出中的尾随换行符
PS:命令echo的效果是始终在输出中包含一个尾随换行符,因此需要-n来关闭该功能(并使其不那么混乱)
我的脚本:
echo "WARNINGS: $warningsFound WARNINGS FOUND:\n$warningStrings
输出:
WARNING : 2 WARNINGS FOUND:\nWarning, found the following local orphaned signature file:
在我的Bash脚本中,我一直像你一样生气,直到我尝试了:
echo "WARNING : $warningsFound WARNINGS FOUND:
$warningStrings"
只需按Enter键即可插入跳转。现在的输出是:
WARNING : 2 WARNINGS FOUND:
Warning, found the following local orphaned signature file:
Bash 4.4中添加了一个新的参数扩展,用于解释转义序列:
${parameter@operator}-E操作员展开是一个字符串,它是参数的值反斜杠转义序列扩展为$“…”引号机械装置
$ foo='hello\nworld'
$ echo "${foo@E}"
hello
world
你也可以使用带括号的echo,
$ (echo hello; echo world)
hello
world