Linux 中的 Echo 命令用法与示例

echo 命令是 Linux 中最基本和最常用的命令之一。它接收字符串参数,并把他们传递给标准输出并在标准输出上打印出来。

echo 通常用于 shell 脚本中以显示消息或输出其他命令的结果。

echo 命令

echo 已经内置在 Bash 以及大多数其他流行的 shell 中,如 Zsh 和 Ksh 。还有一个独立的 /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 "World"'
    
    echo "Hello \"World\""
    
    Hello, "World"!
  • 显示包含单引号的文本行。

    要打印单引号,请将其括在双引号内或使用 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
    
    adam

    $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 命令的工作原理。