手册页部分 1: 用户命令

退出打印视图

更新时间: 2014 年 7 月
 
 

echo(1)

名称

echo - 回显参数

用法概要

/usr/bin/echo [string]...

描述

echo 实用程序可将其参数(用 BLANK 分隔并用 NEWLINE 终止)写入到标准输出。如果没有参数,则仅写入 NEWLINE 字符。

echo 适用于在命令文件中生成诊断、将已知数据发送到管道中以及显示环境变量的内容。

C shell、Korn shell 和 Bourne shell 都有 echo 内置命令;缺省情况下,如果用户调用 echo 时未提供完整路径名,将调用这些命令。请参见 shell_builtins(1)shechoksh88echokshecho/usr/bin/echo 理解反斜杠转义符,但 shecho 不理解 \a 警报字符。此外,ksh88kshecho 没有 –n 选项。另一方面,csh echo/usr/ucb/echo 有一个 –n 选项,但不理解反斜杠转义符。shksh88 确定是否在 PATH 中先查找 /usr/ucb/echo;如果是,则调整内置的 echo 行为以匹配 /usr/ucb/echo

操作数

支持下列操作数:

string

要写入到标准输出的字符串。如果任一操作数为 “-n”,则将其视为字符串,而不是选项。在任何参数中都可识别以下字符序列:

\a

警报字符。

\b

退格键。

\c

输出不带换行符的行。忽略参数中 \c 后面的所有字符。

\f

换页符。

\n

换行符。

\r

回车。

\t

制表符。

\v

垂直制表符。

\\

反斜杠。

\0n

其中 n 是 8 位字符,其 ASCII 编码为代表该字符的 1 位、2 位 或 3 位数的八进制数字。

用法

可移植应用程序不应使用 –n(作为第一个参数)或者转义序列。

printf(1) 实用程序可通过移植方式用于模拟 echo 实用程序的任何传统行为,如下所示:

  • Solaris 2.6 操作系统或兼容版本的 /usr/bin/echo 等效于:

    printf "%b\n" "$*"
  • /usr/ucb/echo 等效于:

    if [ "X$1" = "X-n" ]
    
    then
    
            shift
    
            printf "%s" "$*"
    
    else
    
            printf "%s\n" "$*"
    
    fi

鼓励新应用程序使用 printf 来取代 echo

示例

示例 1 查找当前目录距离根目录的层次

可以使用 echo 确定在根目录 (/) 下方深入多少个子目录才是您的当前目录,如下所示:

  • 回显当前工作目录的完整路径名。

  • 通过 tr 传输输出,以便将路径的嵌入式斜杠字符转换为空格字符。

  • 通过 wc –w 传输该输出以获路径中的名称数量。

    example% /usr/bin/echo $PWD | tr '/' ' ' | wc -w

有关它们的功能,请参见 tr(1)wc(1)

以下是回显不带 NEWLINE 的字符串的其他形式:

示例 2 /usr/bin/echo
example% /usr/bin/echo "$USER's current directory is $PWD\c"
示例 3 sh/ksh88 shell
example$ echo "$USER's current directory is $PWD\c"
示例 4 csh shell
example% echo -n "$USER's current directory is $PWD"
示例 5 /usr/ucb/echo
example% /usr/ucb/echo -n "$USER's current directory is $PWD"

环境变量

有关影响 uname 执行的以下环境变量的说明,请参见 environ(5):LANG、LC_ALL、LC_CTYPE、LC_MESSAGES 和 NLSPATH。

退出状态

将返回以下错误值:

0

成功完成。

>0

出现错误。

属性

有关下列属性的说明,请参见 attributes(5)

属性类型
属性值
可用性
system/core-os
CSI
Enabled(已启用)
接口稳定性
Committed(已确定)
标准
请参见 standards(5)

另请参见

ksh(1)printf(1)shell_builtins(1)tr(1)wc(1)echo(1B)ascii(5)attributes(5)environ(5)standards(5)

附注

通过使用转义约定 \0n 表示 8 位字符时,n 前面必须始终有一个数字零 (0)。

例如,键入 echo 'WARNING:\ 07' 将输出短语 WARNING:,并在终端上响铃。需要使用单引号或双引号(或者两个反斜杠)来保护 “07” 前面的 “ \”。

\0 后面最多使用三个数字来构造八进制输出字符。如果在 \0n 后要回显不属于八进制表示形式的其他数字,则必须使用完整的三位数 n。例如,如果要回显 “ESC 7”,则必须在 \ 0 后使用三位数 “033”,而不是两位数 “33”。

2 digits         Incorrect:      echo "\0337" | od -xc
                 produces:       df0a                     (hex)
                                 337                      (ascii)
3 digits         Correct:        echo "\00337" | od -xc
                 produces:       lb37 0a00                (hex)
                                 033 7                    (ascii)

有关每个字符的八进制等效字符,请参见 ascii(5)