echo
命令是Linux中最基本和最常用的命令之一。传递参数给echo
将打印到标准输出。
echo
通常在shell脚本中用于显示消息或输出其他命令的结果。
echo命令
echo
是一个内置在Bash中的shell和大多数其他流行的shell,如Zsh和Ksh。它的行为与shell之间略有不同。
还有一个独立的/usr/bin/echo
程序,但通常,shell内置版本将优先。我们将介绍Bash内置版本echo
。
echo
命令的语法如下:
echo [-neE] [ARGUMENTS]
- 使用
-n
选项时,将禁止尾随换行符。 - 如果给出
-e
选项,则将解释以下反斜杠转义字符: -
\\
- 显示反斜杠字符。 -
\a
- 警报(BEL) -
\b
- 显示退格字符。 -
\c
- 抑制任何进一步的输出 -
\e
- 显示转义字符。 -
\f
- 显示换页符。 -
\n
- 显示新行。 -
\r
- 显示回车。 -
\t
- 显示水平选项卡。 -
\v
- 显示垂直选项卡。 -
-E
选项禁用转义字符的解释。这是默认值。
使用echo
命令时需要考虑几点。
- 在将参数传递给
echo
命令之前,shell将替换所有变量,通配符匹配和特殊字符。 - 传递给
echo
的参数使用双引号或单引号括起来。虽然没有必要,但是一种很好的编程习惯。 - 使用单引号时
''
,将保留引号中包含的每个字符的字面值。变量和命令不会被扩展。
echo
例子
以下示例显示了如何使用echo命令:
在标准输出上显示一行文本。
echo Hello, World!
Hello, World!
显示包含双引号的文本行。
要打印双引号,请将其括在单引号内,或使用反斜杠字符对其进行转义。
echo 'Hello "myfreax"'
echo "Hello \"myfreax\""
Hello "myfreax"
显示包含单引号的文本行。
要打印单引号,请将其括在双引号内或使用ANSI-C引号。
echo "I'm a Linux user."
echo $'I\'m a Linux user.'
I'm a Linux user.
显示包含特殊字符的消息。
使用该-e
选项可启用转义字符的解释。
echo -e "You know nothing, Jon Snow.\n\t- Ygritte"
You know nothing, Jon Snow.
- Ygritte
模式匹配字符。
echo
命令可以与模式匹配字符一起使用,例如通配符。下面的命令将返回当前目录中所有.php
文件的名称。
echo The PHP files are: *.php
The PHP files are: index.php contact.php functions.php
重定向到文件
相反,显示输出到屏幕,您可以在使用>
,>>
操作符重定向到一个文件中。
echo -e 'The only true wisdom is in knowing you know nothing.\nSocrates' >> /tmp/file.txt
如果file.txt不存在,该命令将创建它。当使用>
该文件时将被覆盖,而>>
将输出追加到该文件。
使用该cat
命令查看文件的内容:
cat /tmp/file.txt
The only true wisdom is in knowing you know nothing.
Socrates
显示变量
echo
也可以显示变量。在以下示例中,我们将打印当前登录用户的名称:
echo $USER
myfreax
$USER
是一个保存用户名的shell变量。
显示命令的输出
使用$(command)
表达式在命令echo
参数中包含命令输出。以下命令将显示当前日期:
echo "The date is: $(date +%D)"
The date is: 04/17/19
以彩色显示
使用ANSI转义序列更改前景色和背景色或设置下划线和粗体等文本属性。
echo -e "\033[1;37mWHITE"echo -e "\033[0;30mBLACK"echo -e "\033[0;34mBLUE"echo -e "\033[0;32mGREEN"echo -e "\033[0;36mCYAN"echo -e "\033[0;31mRED"echo -e "\033[0;35mPURPLE"echo -e "\033[0;33mYELLOW"echo -e "\033[1;30mGRAY"
结论
到目前为止,您应该很好地理解echo
命令的工作原理。如果您有任何问题或反馈,请随时发表评论