当前位置: 首页>>技术教程>>正文


Bash脚本:如何在Linux Shell上输出和格式化文本

Bash脚本非常流行,是最简单的脚本语言。与任何其他编程或脚本语言一样,您需要在终端上打印文本,例如当您要输出文件的内容或检查变量的值时。程序员还通过在控制台上打印其变量的值来调试其应用程序。因此,在我们深入研究bash脚本(这将是另一篇教程)之前,让我们看一下在终端中输出文本的不同方式。

为了在终端上输出文本,Echo是您需要了解的最重要的命令。顾名思义,echo在终端的标准输出上显示数字或字符串。下表还显示了许多可用选项。

选项 定义
-n 不要打印行尾的换行符
-E 禁用对反斜杠(back-slash)转义字符的解释
-e 启用反斜杠转义的解释
\a 警报声/提示音符
\b 退格符
\c 禁止尾随换行符,截断后续字符串
\e 转义符
\f 换页符
\\ 反斜线符
\n 换行符
\r 回车符
\t 水平制表符
\v 垂直制表符

根据Linux文档,以下是echo命令的语法。

echo [option(s)] [string(s)]

接下来,我们将看到在终端上输出文本的不同方式。

发送文本到标准输出

要在终端上输出任何字符串,数字或文本,请键入以下命令,然后按Enter。

echo "Hello World"

以下输出将显示在终端上

Send text to stdout with echo command

打印变量

让我们声明一个变量,并将其值显示在终端上。假设x是一个我们已初始化为100的变量。

x=100

现在,我们将在终端上输出变量的值。

echo x

将在终端上打印100。同样,您也可以将字符串存储在变量中并在终端上输出。

Print content of a variable

 

删除单词之间的空格

这是我最喜欢的echo选项之一,因为它消除了句子中不同单词之间的所有空格并将它们联合在一起。在此功能中,我们将使用表1中提到的两个选项。

echo -e "Hello \bmy \bname \bis \bjohn \bDoe"

从上面的示例中可以看到,我们正在启用反斜杠转义的解释以及添加退格符。输出如下:

Remove space between words with backspace

在新行中输出单词

当您使用bash脚本时,此echo选项非常有用。通常,完成后,您需要移至下一行。因此,这是用于此目的的最佳选择。

echo -e "Hello \nmy \nname \nis \nJohn \nDoe"

输出将在单独的行中显示每个单词,如下面的运行截图所示。

Add newlines to the text output

带声音输出文本

输出带有铃声或警报的文本的简单选项。请键入以下命令。

echo -e "Hello \amy name is John Doe"

确保系统的音量足够大,以使您能够听到在终端上输出文本时发出的微小铃声。

删除尾部换行符

echo的另一个选择是删除尾随的换行符,以便所有内容都输出在同一行上。为此,我们使用“\c”选项,如下图所示。

echo -e "Hello my name \cis John Doe"

显示以下输出,\c之后的字符串被截断不显示。

Remove trailing newline

将回车添加到输出

要在输出中添加特定的回车符,我们为此提供了“\r”选项。

echo -e "Hello my name \ris John Doe"

在终端上显示以下输出。注:只回车不换行,相当于输出\r之后的。

Add a Carriage Return to the output

在输出中使用制表符TAB

在终端上打印输出时,您也可以添加水平和垂直制表符。这对于获得更清洁的输出非常有用。要添加水平制表符,您必须添加“\t”,对于垂直标签,请添加“\v”。我们将为2中情况分别做一个样本,然后再合并来看看。

echo -e "Hello my name \tis John Doe"

该命令的输出如下所示

Use tabs to format the text output

echo -e "Hello my name \vis John Doe"

该命令的输出如下所示

Use \v in bash output

现在,我们将把这2个例子用一个句子结合起来。

echo -e "Hello my name \vis John Doe. Hello! My name is \tJane Doe"

以下内容将打印在终端上。

Advanced formatting example

以上,就是可用于在终端上打印文本的所有选项。

参考资料

本文由《纯净天空》出品。文章地址: https://vimsky.com/article/4233.html,未经允许,请勿转载。