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

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

当前回答

你可以一直做回声“”。

例如

echo "Hello,"
echo ""
echo "World!"

其他回答

如果有人发现自己的头撞在墙上,试图弄清楚为什么同事的脚本不会打印新行,那么请注意:

#!/bin/bash
function GET_RECORDS()
{
   echo -e "starting\n the process";
}

echo $(GET_RECORDS);

如上所述,方法的实际运行本身可能会被一个回声所包裹,该回声会取代方法本身中的任何回声。显然,为了简洁起见,我淡化了这一点。这不是那么容易发现的!

然后,您可以通知您的同事,执行功能的更好方法如下:

#!/bin/bash
function GET_RECORDS()
{
   echo -e "starting\n the process";
}

GET_RECORDS;

有时您可以传递由空格分隔的多个字符串,它将被解释为\n。

例如,当为多行通知使用shell脚本时:

#!/bin/bash
notify-send 'notification success' 'another line' 'time now '`date +"%s"`
str='hello\nworld'
$ echo | sed "i$str"
hello
world

你可以一直做回声“”。

例如

echo "Hello,"
echo ""
echo "World!"

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

这可能导致一些混淆。