Linux/Unix 下的 echo 命令及示例

17 Mar 2025 | 5 分钟阅读

在 Linux 中,echo 命令可用于显示传递为参数的字符串/文本行。此命令是一个内置命令,主要且广泛地用于各种批处理文件和 shell 脚本中,以将状态测试输出到文件和屏幕。

Linux 发行版允许我们自行控制和设置系统。在这种情况下,echo 命令是最常用的命令之一。它用于批处理文件和 bash 脚本中,以在我们的屏幕上或文件中生成状态文本。该命令会重复我们被告知要重复的内容。此功能非常简单,但只需要完成其工作。例如,如果没有 echo,我们就无法从 shell 脚本中获得可见的输出。Shell 是一种用户界面,我们可以在其中输入诸如 cat 命令、head 命令、tail 命令或 echo 命令之类的命令。

通用的 echo 操作等同于每种编程语言。我们进行输入(以字符串形式),它会被接收并按原样输出。

重要提示: 命令行解释器或用户界面也称为 bash shell。它是 Linux 发行版中的标准 shell,也是我们可以在其中输入命令的文本窗口。echo 命令是 Ubuntu 的基本组成部分,并且预装在所有系统中。

echo 命令的语法


echo command

echo 命令的实现

echo 命令存在于 SymbOS、KolibriOS、HP MPE/iX、ReactOS、Microsoft Windows、IBM OS/2、Digital Research FlexOS、Acorn Computers Panos、Microwave OS-9、Zilog Z80-RIO、MetaComCo TRIPOS、TSC FLEX、Multics、类 Unix 和 Unix 操作系统中。

包括所有Csh 类(如 zsh 或 Bash)、 Bourne 类 shell 以及COMMAND.COM 和 cmd.exe 在内的多个 shell 都将 echo 命令作为内置命令执行。

该命令也存在于 EFI shell 中。

echo 命令的历史

echo 命令起源于 Multics。后来,它由 **Doug Mcllroy** 在 **C** 语言中作为**“练习题”**进行规范,并被证明很有用。它成为 Unix 的 2 个版本的一部分。

在第 7 版中,echo -n 命令取代了 prompt(其行为类似于 echo 命令,但输出不带行分隔符)。

该命令开始在 **UNIX/PWB** 和 Unix System 3 之后的版本中开发 C 转义序列,例如 \n,并且与 C 的不同之处在于八进制转义序列表示为 \0ooo 而不是 \ooo。echo 命令在 MS-DOS 的 2 个版本中存在。

如今,各种不兼容的 echo 实现都可以在不同的操作系统上找到(在同一系统上也有各种不同的实现)。默认情况下,其中一些会解释转义序列,而另一些则不会。同样,一些会接受选项(选项列表因实现而异),而另一些则不会。

Echo POSIX 规范在第一个参数是 -n 或其他参数包含反斜杠字符时,其行为未指定;而 Unix(POSIX 中的 XSI 选项)规范要求解释序列并且不允许选项处理。

许多 echo 命令的实现并不灵活,无法在默认平台上使用。由于这种性质上的变化,echo 命令被认为是非可移植的命令,而在类 Unix 系统上,**printf** 命令被优先使用。

什么是 echo 控制字符?

在理解了 echo 命令的通用原理后,我们将学习可以与该命令一起使用的控制字符。这些控制字符不会直接显示在屏幕上,但会决定诸如换行、文本结尾和文本开头等内容。

转义描述
\a报警声
\b退格符
\c抑制文本换行
\fBack
\r回到行首
\n换行
\t制表符 (可选)
\\反斜杠字符输出
\v制表符 (可选)
\0nnn八进制 ASCII 字符 (仅 ksh 和 sh)
\nnn八进制 ASCII 字符 (仅 bash)

如何使用 echo 确定颜色?

echo 命令可用于在输出文本时定义文本属性,例如背景和字体的颜色。它通过将每个字符放在引号中或在多个变量中指定颜色来实现,从而使字符串更易于阅读。

以下是不同背景和字体颜色的不同转义码的概述

控制字符描述
\033[30m黑色字体颜色
\033[31m红色字体颜色
\033[32m绿色字体颜色
\033[33m黄色字体颜色
\033[34m蓝色字体颜色
\033[35m品红色字体颜色
\033[36m青色字体颜色
\033[37m白色字体颜色
\033[40m黑色背景
\033[41m红色背景
\033[42m绿色背景
\033[43m黄色背景
\033[44m蓝色背景
\033[45m品红色背景
\033[46m青色背景
\033[47m灰色背景

如何使用 echo 设置文本属性?

除了背景和字体颜色之外,echo 命令还可用于定义诸如下划线或粗体之类的文本属性。以下是许多文本属性的一些代码

控制字符描述
\033[0m重置所有属性
\033[1m粗体
\033[4m下划线
\033[5m闪烁
\033[7m反显

显示字符串/文本

语法

示例

输出

echo command

Echo 命令选项

echo 命令有各种选项。这些选项如下列出并解释

1. \b:此选项用于删除文本/字符串中的所有空格。

示例

输出

echo command

2. \c:此选项用于抑制尾随的换行符,并且 '-e' 反向引用解释器会继续执行而不发出任何新行。

示例

输出

echo command

3. \n:此选项用于创建新行,并且该新行将在其使用的地方创建。

示例

输出

echo command

4. \t:此选项用于创建水平制表符空格。

示例

输出

echo command

5. \r:此选项用于回车符,并且 '-e' 反向引用解释器会将指定的回车符包含在结果中。

示例

输出

echo command

6. \v:此选项用于创建垂直制表符空格。

示例

输出

echo command

7. \a:此选项用于发出提示音,并且 **'-e'** 反向引用解释器会添加声音警报。

示例

输出

echo command

如果运行此命令,它将生成一个提示音或警报声。

注意:在发出声音之前,请确保检查音量键。

8. echo \*:此选项用于打印所有文件夹或文件。它与 Linux 中的 ls 命令相同。

示例

输出

echo command

9. -n:此选项用于省略回显尾随的换行符。

示例

输出

echo command

10. 打印“Hello All”:要将文本**“Hello All!”**打印到终端,我们可以使用以下命令

示例

输出

echo command

11. 打印特定类型的文件:例如,如果我们希望打印所有**'.c'**文件,我们可以使用以下命令

示例

输出

echo command