如何打印新行?这只会打印\n:
$ echo -e "Hello,\nWorld!"
Hello,\nWorld!
如何打印新行?这只会打印\n:
$ echo -e "Hello,\nWorld!"
Hello,\nWorld!
当前回答
POSIX 7回波
http://pubs.opengroup.org/onlinepubs/9699919799/utilities/echo.html
-e未定义,反斜杠已实现定义:
如果第一个操作数是-n,或者任何操作数包含<反斜杠>字符,则结果由实现定义。
除非您有可选的XSI扩展名。
因此,我建议您改用printf,这是非常明确的:
格式操作数应用作XBD文件格式符号[…]中描述的格式字符串
文件格式符号:
\n<newline>将打印位置移动到下一行的开头。
还要记住,Ubuntu 15.10和大多数发行版都实现echo,如下所示:
内置Bash:help echo独立的可执行文件:哪个echo
这可能导致一些混淆。
其他回答
有时您可以传递由空格分隔的多个字符串,它将被解释为\n。
例如,当为多行通知使用shell脚本时:
#!/bin/bash
notify-send 'notification success' 'another line' 'time now '`date +"%s"`
要打印带有回音的新行,请使用:
echo
or
echo -e '\n'
对于所问的问题(不是特殊字符等),只将双引号改为单引号。
echo -e 'Hello,\nWorld!'
结果如下:
Hello,
World!
我的脚本:
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:
如果您正在编写脚本,并且将多次将换行符作为其他消息的一部分进行回显,那么一个不错的跨平台解决方案是在变量中添加一个文本换行符,如下所示:
newline='
'
echo "first line${newline}second line"
echo "Error: example error message n${newline}${usage}" >&2 #requires usage to be defined