echo命令会在末尾自动添加新行,但是,如何只打印出一个空行?或者如何在输出中包含换行符?可以在echo命令中使用-e选项,这样就可以使用换行符\n在同一输出行打印一个新行,如下示例:echo-e"姓名\n地址\n电话号码"输出结果为如下:NameAddressPhoneNumber下面让我们仔细看看。使用echo命令的-e选项打印新行。如果当前行的文本已经结束,我们往往会另起一行,也就是换行。在大多数类Unix系统上,\n用于开始一个新行,称为换行符。默认情况下,echo命令禁用反斜杠转义字符,因此如果您尝试使用\n转义序列来显示换行符,您会发现这不起作用,也不会将单引号中的文本作为字符串括起来文字效果。$echoHello\nworldHellonworld$echo'Hello\nworld'Hello\nworld从上面的例子中,我们可以看到输出与我们预期的不同。如果你想让换行符起作用,你需要使用-e选项,它告诉echo命令我们想要启用反斜杠转义字符:$echo-e'Hello\nworld'Helloworld,这就是我们想要的。下面我们介绍一些显示换行符的其他方法。包含换行符的echo变量您可以将字符串存储在bash变量中,然后使用-e标志回显它。看下面的例子:$str="Hello\nworld"$echo-e$strHelloworld使用美元符号$在bash中,美元符号$被称为扩展字符,它可以在shell中引用变量的值。看下面这段代码,扩展字符的作用相当于保存了一个临时值:$echoHello$'\n'worldHelloworld或者,你也可以将整个字符串作为“临时变量”:$echo$'Hello\nworld'Helloworld但是,我更喜欢使用-e标志。使用echo打印包含换行符的内容当您使用echo命令打印一段文本时,echo命令会自动在文本末尾添加一个换行符。这意味着您可以将多个echo命令链接在一起以生成换行符。请看下面的例子:$echoHello;echoworldHelloworld使用printf在bashshell中打印换行符。printf是一种命令行工具,可将文本打印到终端,还允许用户设置文本格式。它的用法也很简单,类似于echo,但是更方便。看下面的例子:$printf'Hello\nworld\n'Helloworld正如我们想象的那样,printf没有使用任何选项,但是它会和换行符一起输出到终端。就个人而言,我更喜欢使用echo命令的-e选项或printf命令在输出中显示换行符。我建议您也这样做,但请随意尝试。
