Linux中的Echo命令与示例

文章目录

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命令的工作原理。如果您有任何问题或反馈,请随时发表评论

全部为采集文章,文中的 联系方式 均不是 本人 的!

发表评论