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

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

当前回答

echo $'hello\nworld'

印刷品

hello
world

$“”字符串使用ANSI C报价:

$‘string’形式的单词被特别对待。单词扩展为字符串,并按照ANSI C标准的规定替换反斜杠转义字符。

其他回答

你也可以使用带括号的echo,

$ (echo hello; echo world)
hello
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;

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

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

$ foo='hello\nworld'
$ echo "${foo@E}"
hello
world

对于所问的问题(不是特殊字符等),只将双引号改为单引号。

echo -e 'Hello,\nWorld!'

结果如下:

Hello,
World!

我只使用echo而不使用任何参数:

echo "Hello"
echo
echo "World"