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

吾爱主题 阅读:133 2024-04-05 15:06:12 评论:0

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

可以去百度分享获取分享代码输入这里。
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

【腾讯云】云服务器产品特惠热卖中
搜索
标签列表
    关注我们

    了解等多精彩内容