/usr/bin/echo [string]...
echo 实用程序可将其参数(用 BLANK 分隔并用 NEWLINE 终止)写入到标准输出。如果没有参数,则仅写入 NEWLINE 字符。
echo 适用于在命令文件中生成诊断、将已知数据发送到管道中以及显示环境变量的内容。
C shell、Korn shell 和 Bourne shell 都有 echo 内置命令;缺省情况下,如果用户调用 echo 时未提供完整路径名,将调用这些命令。请参见 shell_builtins(1)。sh 的 echo、ksh88 的 echo、ksh 的 echo 和 /usr/bin/echo 理解反斜杠转义符,但 sh 的 echo 不理解 \a 警报字符。此外,ksh88 和 ksh 的 echo 没有 –n 选项。另一方面,csh 的 echo 和 /usr/ucb/echo 有一个 –n 选项,但不理解反斜杠转义符。sh 和 ksh88 确定是否在 PATH 中先查找 /usr/ucb/echo;如果是,则调整内置的 echo 行为以匹配 /usr/ucb/echo。
支持下列操作数:
要写入到标准输出的字符串。如果任一操作数为 “-n”,则将其视为字符串,而不是选项。在任何参数中都可识别以下字符序列:
警报字符。
退格键。
输出不带换行符的行。忽略参数中 \c 后面的所有字符。
换页符。
换行符。
回车。
制表符。
垂直制表符。
反斜杠。
其中 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。
可以使用 echo 确定在根目录 (/) 下方深入多少个子目录才是您的当前目录,如下所示:
回显当前工作目录的完整路径名。
通过 tr 传输输出,以便将路径的嵌入式斜杠字符转换为空格字符。
通过 wc –w 传输该输出以获路径中的名称数量。
example% /usr/bin/echo $PWD | tr '/' ' ' | wc -w
以下是回显不带 NEWLINE 的字符串的其他形式:
示例 2 /usr/bin/echoexample% /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。
将返回以下错误值:
成功完成。
出现错误。
有关下列属性的说明,请参见 attributes(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)。