The echo
Linux 中的命令允许您显示文本或将数据输出到终端。
它可用于各种目的,例如打印变量的值、生成格式化输出,甚至调试脚本。
在终端中尝试以下命令:
echo "Hello, world!"
在这里,“你好,世界!”被打印到终端。这echo
命令将字符串作为参数并将其打印到标准输出,默认情况下这是您的终端。
什么是标准输出?
标准输出,通常缩写为 stdout,是程序写入其输出数据的默认数据流。
在Linux和类Unix系统中,标准输出默认是屏幕或终端。
我们来看一个简单的命令:
echo "This is standard output"
此命令会将“这是标准输出”打印到您的终端。默认情况下,echo
命令将其输出发送到标准输出。
语法和选项
的一般语法为echo
命令是:
echo [option]... [string]...
The echo
命令支持以下选项:
-
-n
:此选项可防止尾随换行符。默认情况下,echo
在输出末尾附加一个换行符。使用-n
抑制这种行为。
-
-e
:此选项启用反斜杠转义的解释。它允许您使用特殊字符,例如\n
对于换行符,\t
用于选项卡等。
-
-E
:此选项禁用反斜杠转义的解释。这是默认行为echo
,但可以用于清晰起见或覆盖不同环境中的任何默认更改。
回显变量
在 bash 脚本中,您可以创建变量来存储信息。随着echo
命令,可以显示这些变量的内容。
首先,我们创建一个变量:
name="John Doe"
现在,让我们打印这个变量的值:
echo $name
在这里,“John Doe”将被打印到您的终端。
通过使用$
变量名前的符号 ($name
),你告诉 Bash 你想要显示的内容name
多变的。
您还可以显示以下值环境变量使用回声:
echo $USER
这将打印当前登录的用户。
打印特殊字符
您可以使用以下命令显示这些特殊字符echo
使用反斜杠 (\
) 这称为转义字符。
它告诉 Bash 将下一个字符视为文字字符,而不是特殊字符。
在 Bash 中,特殊字符是具有特定功能的字符。例如,$
符号用于变量替换。
让我们尝试输出一个美元符号:
echo "\$100"
此命令将在您的终端上打印“$100”。
抑制尾随换行符
默认情况下,echo
命令在其输出末尾添加一个换行符。如果你想抑制这个换行符,你可以使用-n
option.
echo -n "No newline here"
执行该命令后,打印“No newline here”,但光标停留在同一行。
禁用反斜杠转义的解释
The -E
选项禁用反斜杠转义的解释,这是默认行为echo
。这意味着特殊字符将被视为纯文本。
echo -E "Hello\nWorld"
该命令将打印“Hello\nWorld”,因为-E
阻止了echo
口译命令\n
作为换行符。
反斜杠转义的解释
The -e
选项启用反斜杠转义的解释。这允许您使用特殊字符,例如\n
对于新线路,\t
用于选项卡等。
echo -e "Hello\nWorld"
该命令将打印:
Hello
World
通过使用-e
, the echo
命令解释n
作为换行符,这就是为什么“Hello”和“World”打印在不同的行上。
警报(响铃)
The \a
字符会触发蜂鸣声或终端中的警报。它也被称为铃字符。
echo -e "\a"
当您运行此命令时,您会听到蜂鸣声。
退格键
The \b
字符被解释为退格键。它删除前一个字符。
echo -e "Helloo\b World"
该命令将打印“Hello World”。多余的“o”被退格字符删除b
.
抑制进一步输出
The \c
字符会抑制该行上的任何进一步输出。
echo -e "Hello\c World"
该命令将打印“Hello”,然后隐藏该行的其余部分,因此不会出现“World”。
Escape
The \e
字符是转义字符。它可用于启动其他字符的转义序列。
echo -e "\e"
该命令只打印一个空行,因为\e
本身不产生任何可见的输出。
它通常与转义序列中的其他字符结合使用,例如打印彩色输出,我们将在本教程后面看到。
换页
The \f
字符是换页符。它用于将光标移动到下一页的开头。
然而,由于终端没有页面,\f
只需将光标移动到新行。
echo -e "Hello\fWorld"
该命令将打印:
Hello
World
New line
The \n
字符是换行符。它用于开始新行。
echo -e "Hello\nWorld"
该命令将打印:
Hello
World
The n
角色在“Hello”之后开始新的一行。
回车符
The \r
字符是回车符。它将光标移回行首。
echo -e "Hello\rWorld"
该命令将打印“World”。回车符\r
打印“Hello”后将光标移回行首,“World”打印在行首,覆盖“Hello”。
水平制表符
The \t
字符是水平制表符。它插入一个制表符空格。
echo -e "Hello\tWorld"
该命令将打印“Hello World”。这\t
字符在“Hello”和“World”之间插入了一个制表符空格。
垂直标签
The \v
字符是垂直制表符。它开始一个新行并在下一个字符之前添加一些空格。
echo -e "Hello\vWorld"
该命令将打印:
Hello
World
反斜杠
The \\
序列代表文字反斜杠。
echo -e "Hello\\World"
该命令将打印“Hello\World”。
ASCII 码为 nnn(八进制)的字符
您可以使用\0nnn
用它来表示一个字符ASCII 码八进制格式。确保更换nnn
与要打印的字符的八进制 ASCII 代码。
echo -e "\0061"
该命令将打印“a”。 “a”的 ASCII 码以八进制格式表示为 61,因此\0061
代表“a”。
使用 ANSI 转义码打印彩色输出
您可以使用 ANSI 转义码在终端中打印彩色输出。 ANSI 转义码开头\e[
后面跟着一些参数,并以m
.
让我们打印“Hello, world!”红色的:
echo -e "\e[31mHello, world!\e[0m"
该命令打印“Hello, world!”红色的。转义码\e[31m
将文本颜色更改为红色,并且\e[0m
将其重置回默认颜色。
将 echo 输出重定向到文件
您可以使用>
运算符重定向输出echo
到一个文件。
echo "Hello, world!" > hello.txt
运行此命令后,将创建一个名为“hello.txt”的文件,以及“Hello, world!”被写入此文件。如果该文件已经存在,则其内容将替换为“Hello, world!”。
附加到文件
The >>
运算符可用于附加输出echo
到一个文件。
echo "Hello again!" >> hello.txt
该命令添加“Hello again!”到“hello.txt”的末尾。它不会覆盖现有内容,只是附加到现有内容上。
通过管道将输出输出到另一个命令
The |
(管道)运算符用于将一个命令的输出作为另一命令的输入传递。
echo "Hello, world!" | wc -w
该命令打印“2”。这echo
命令生成字符串“Hello, world!”,然后将其通过管道传输到wc -w
命令。
The wc -w
命令计算输入中的单词数,因此打印“2”。
带回声的引号
当您使用变量或转义序列时echo
,记得用引号。
name="John Doe"
echo "$name"
echo -e "Hello\nWorld"
第一个命令打印“John Doe”,第二个命令打印:
Hello
World
如果没有引号,变量将不会被扩展,转义序列也不会被解释。