作为管理员,在管理Linux系统时,您可能会经常在Bash中运行echo命令。但是,打印文本是echo命令能提供的全部吗?
在本教程中,您将仔细研究echo命令,并学习一些其最有用的实际示例。
准备好了吗?请继续关注,重新塑造您对echo命令的理念!
先决条件
本教程包括实际演示。要跟着操作,您只需要一台Ubuntu机器。本教程使用Ubuntu 20.04,但其他Linux发行版也将适用。
使用Bash Shell的echo命令打印字符串
当您考虑echo命令时,首先想到的可能是将字符串值打印到控制台。是的,echo命令直接从命令或脚本中返回字符串。
但是在本教程的后面,您将以不同的视角看待echo命令。现在,看看这个命令如何将字符串输出到控制台。
echo命令的语法如下,其中:
- string – 要打印的文本。
- options – 您可以指定以修改输出的可选参数。
运行下面的echo命令,不添加选项,以在控制台打印简单文本。此命令将字符串作为参数传递给echo命令。

抑制字符串中的尾随换行符
echo命令默认在每个字符串末尾添加换行符。因此,当您打印多个字符串时,可能会将一个字符串连接到另一个字符串,每个字符串都会打印在新的一行。
使用-n选项可以抑制尾随的换行符,告诉echo命令将多个字符串打印在单行上。例如,在将进度条打印到控制台时,此选项可能很有帮助。
运行以下命令以打印进度:和50%。
如下所示,您可以看到换行符将这两个字符串分隔开。

现在,运行以下命令,并附加-n选项,以打印字符串进度:和50%。
如下所示,由于您使用了-n选项来抑制换行符,现在两个字符串都在单行上。

打印变量值
编写脚本时,通常会将值临时存储到变量中,然后可以使用echo命令打印该值。在调试shell脚本时,检查变量的值可能会很有帮助。
运行以下命令将数字变量的值设置为10,并将该值打印(echo)到控制台。

解释转义序列
转义序列是表示特殊字符的一系列字符,您可以使用-e选项来解释转义序列。
例如,\t 转义序列代表一个制表符。如果你使用 -e 选项并将 \t 打印到控制台,\t 将被解释为制表符,而不是被直接打印。
一些最常见的转义序列如下:
Escape Sequence | Function |
\b | backspace |
\t | tab |
\n | new line |
\\ | backslash |
\$ | dollar sign |
运行以下命令以将 Hello\tWorld 打印到控制台。
你可以看到下面,echo 命令将字符串 Hello\tWorld 原样打印了出来。

现在,运行下面的命令以打印 Hello\tWorld,并在其中添加 -e 选项以解释 \t 为制表符。
请注意下面单词 Hello 和 World 之间的巨大间隔。

将字符串插入到新行
打印一个长的单行字符串会让用户很难阅读其全部内容。幸运的是,\n 选项允许你在字符串中间添加换行符。当在控制台打印多行文本时,这个选项经常被使用,它让实际文本更清晰。
运行下面的命令以打印字符串 Echo command bash\nAnother line,其中 \n 选项将字符串分成两行。
下面,你可以看到 \n 选项将字符串 Another line 放到了新行。

在字符串之间插入垂直制表符
你已经看到 \t 转义序列将字符串之间放置了水平制表符。但是垂直制表符呢?\v 选项允许你在垂直制表符中分隔字符串,非常适合制作文本横幅。
当在控制台打印多列文本时,经常使用这个选项,每列都在新行上,并在开头有一个新的制表符空格。
运行以下命令以打印文本 Echo command bash demo,但在每个单词之间使用垂直制表符(\v)。

基于扩展名打印文件名
如果您想要找到具有特定文件类型的文件的方法,echo 命令的此功能起到相同的作用。echo 命令支持使用通配符字符 (*) 在目录中列出具有特定扩展名的文件。
1. 运行以下命令以打印当前目录中以 .txt 扩展名结尾的所有文件。

2. 接下来,运行以下命令以打印当前目录中以 .deb 文件扩展名结尾的所有文件。

3. 最后,运行以下命令以打印 ~/Downloads 目录中具有 .txt 扩展名的文件。您可以将 ~/Downloads/ 替换为您文件的实际目录路径。
您可以看到,echo 命令支持指定您文件所在的目录路径。

将输出写入文件
当你的命令返回大量输出时,在控制台上几乎无法阅读所有内容。将输出写入文件是个好主意。但是如何做呢?除了将文本打印到控制台外,echo命令还支持直接将输出写入文件。
运行下面的命令,由于输出被写入(>)到一个名为echo-bash.txt 的文件中,因此不会提供输出。
请注意,如果echo-bash.txt文件已经存在,它将被新内容覆盖。
现在,运行以下cat命令来查看echo-bash.txt文件的内容。
正如你下面所见,echo命令的输出被写入echo-bash.txt文件中。

追加输出到现有文件
如前所述,>运算符用新内容覆盖现有文件。但是如果你希望将输出追加到现有文件而不是覆盖它呢?
不要使用单个>运算符,而是使用两个>>。这个特性可以帮助保留现有内容,并将新条目追加到文件末尾。
运行下面的命令,将新文本(追加文本)追加(>>)到现有的echo-bash.txt文件中。
现在,运行以下cat命令来查看echo-bash.txt文件的内容。
正如你下面所见,echo命令的输出被追加到文件中,而不会覆盖任何内容。

结论
echo 命令在 bash shell 中是一个简单但功能强大的工具,可以以多种方式使用。在本教程中,您已经学会如何通过一些最流行的选项来最大化 echo 命令的潜力。
将文本打印到控制台不再仅仅是“打印文本”了。您已经了解如何将输出写入文件、追加输出,并更改每个打印文本的外观。
为什么不选择一些您可以使用 echo 命令的方式,并将它们写入您的 脚本 中呢?看看您能想出什么创造性的方法!