将字符串写到标准输出
echo [ String ... ]
命令 echo 将字符串写到标准输出中。多个字符串间由空格隔开,指定的最后一个 String 参数后跟有换行符。如果没有指定 String 参数,将显示一空白行(换行符)。
通常您可以通过 --(双连字符)来区分标志和一个以连字符开头的字符串。既然标志不被 echo 命令所支持,那么 --(双连字符)将以字面意义处理。
命令 echo 能够识别以下转义约定:
\a | 显示警告字符。 |
\b | 显示退格符。 |
\c | 在输出中禁止另外跟在最终参数后面的换行字符。所有跟在 \c 序列后的字符都被忽略。 |
\f | 显示走纸字符。 |
\n | 显示换行字符。 |
\r | 显示一个回车字符。 |
\t | 显示制表符。 |
\v | 显示垂直制表符。 |
\\ | 显示反斜线符号。 |
\0数字 | 显示一个 ASCII 值为 0、1、2、3 位八进制数的八位字符。 |
注: 命令 bsh、ksh 和 csh 各有一个内置的 echo 子命令。命令 echo 和命令 bsh 以及 ksh echo 子命令的工作方式是相同的。子命令 csh echo 的工作方式不同于 echo 命令。有关 echo 子命令的信息,请参阅《AIX 5L V5.2 系统用户指南:操作系统与设备》中的『Bourne Shell 内置命令』、『常用内置命令描述』以及『C Shell 内置命令』。
\ (反斜线) 在 shell 中是一个引号字符。这意味着,除非 \ 和一个转义字符连用或者被引号括起如 "\" 或 '\',当命令扩展时 shell 将除去反斜线。
shell 扩展后,命令echo 根据输入中的转义序列写到输出中。根据反斜线简化表,比较反斜线是如何在命令中首先由 shell 然后又由 echo 命令缩减的:
反斜线缩减 | ||
输入命令 | 在 shell 扩展后 | 处理完 echo 命令后 |
echo hi\\\\there | echo hi\\there | hi\there |
echo 'hi\\\\there' | echo 'hi\\\\there' | hi\\there |
echo "hi\\\\there' | echo "hi\\there" | hi\there |
此命令返回下列出口值:
0 | 成功结束。 |
>0 | 发生错误。 |
echo Please insert diskette . . .
echo "\n\n\nI'm at lunch.\nI'll be back at 1:00."
这一命令将跳过三行,然后显示报文如下:
I'm at lunch. I'll be back at 1:00.
注意: 如果报文中含有转义序列,则必须把它放在引号中。否则的话,shell 将会把 \ (反斜线) 翻译为一个元字符,并且用不同的方式处理。
echo The back-up files are: *.bak
这一用法将显示消息备份文件后跟有 当前目录中以 .bak 结尾的文件名。
echo Remember to set the shell search path to $PATH. >>notes
在 shell 代替了 shell 变量 PATH 的值以后,这一用法将把消息添加到文件 notes 的末尾。
echo Error: file already exists. >&2
这个命令将错误信息重定向到标准错误。如果>&2 被省略了,那么报文将被写到标准输出中。
/usr/bin/echo | 包含有echo 命令。 |
bsh 命令、csh 命令、ksh 命令、printf 命令。
《AIX 5L V5.2 系统用户指南:操作系统与设备》中的『输入输出重定向概述』描述了操作系统中输入和输出是如何进行的,以及重定向和管道符号的使用
《AIX 5L V5.2 系统用户指南:操作系统与设备》中的『Shell 概述』描述了什么是 shell、几种不同类型的 shell,以及 shell 是如何影响命令的解释的。