服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

Linux|Centos|Ubuntu|系统进程|Fedora|注册表|Bios|Solaris|Windows7|Windows10|Windows11|windows server|

服务器之家 - 服务器系统 - Linux - 如何在 bash shell 脚本中 echo 一个新行

如何在 bash shell 脚本中 echo 一个新行

2022-11-03 19:16TIAP刘光录 Linux

本文主要为大家介绍下如何在 bash shell 脚本中 echo 一个新行,有需要的朋友可以参考下

如何在 bash shell 脚本中 echo 一个新行

echo 命令会在末尾自动添加新行,但是,如何只打印出一个空行呢?或者怎样在输出内容中包含一个新行呢?

可以在 echo 命令中使用 -e 选项,这样就可以使用换行符 \n 在同一输出行中打印新行了,如下例子:

echo -e "Name\nAddress\nPhone Number"

其输出如下:

Name
Address
Phone Number

下面我们来详细了解一下。

使用 echo 命令的 -e 选项打印新行

如果当前行的文本已结束,我们往往会新起一行,也就是换行。在大多数类 Unix 系统中,\n 用于新起一行,它被称为换行符

默认情况下,echo 命令禁用反斜杠转义字符,因此,如果你尝试使用 \n 转义序列显示换行符,会发现这不起作用,将文本用单引号括起来作为字符串文本也不起作用。

$ echo Hello\nworld
Hellonworld $ echo 'Hello\nworld' Hello\nworld

上面的例子可以看出,输出与我们期望的不一样。如果要让换行符起作用,这就需要用到 -e 选项了,该选项告诉 echo 命令我们希望启用反斜杠转义字符:

$ echo -e 'Hello\nworld' Hello
world

这样,才是我们想要的。

下面我们介绍一些其他的方法来显示换行符。

echo 包含新行的变量

你可以将字符串存储在 bash 变量中,然后使用 -e 标志对其进行回显。看下面的例子:

$ str="Hello\nworld" $ echo -e $str Hello
world

使用美元符号 $

在 bash 中,美元符号 $ 被称为扩展字符,它可以在 shell 中引用变量的值。

看下面这段代码,扩展字符的作用相当于保存一个临时的值:

$ echo Hello$'\n'world
Hello
world

或者,也可以将整个字符串用作“临时变量”:

$ echo $'Hello\nworld' Hello
world

不过,我更喜欢使用 -e 标志。

使用 echo 打印包含新行的内容

当你使用 echo 命令打印一段文本的时候,echo 命令会在文本的末尾自动添加一个换行符。

这意味着您可以将多个echo命令链接在一起以生成换行。看下面的例子:

$ echo Hello; echo world
Hello
world

使用 printf 在 bash shell 中打印换行符

printf 是一个命令行工具,它可以将文本打印在终端上,也允许用户格式化文本。

其用法也很简单,类似于 echo,但是更加方便。看下面的例子:

$ printf 'Hello\nworld\n'
Hello
world

正如我们设想的那样,printf 没有使用任何选项,不过连带换行符也会一起输出在终端上。

就我个人而言,我更喜欢使用 echo 命令的 -e 选项,或者使用 printf 命令来显示输出中的新行。我建议你也这么做,但你可以自由尝试。

原文地址:https://mp.weixin.qq.com/s/_Fjb2kxCjTh1PeFW91U3rg

延伸 · 阅读

精彩推荐