Echo (命令)

在计算机技术中，echo是一个DOS、OS/2、Microsoft Windows、Singularity、Unix和类Unix系统中的命令，用来将字符串输出到终端上。它通常在shell脚本和批处理中使用，以将状态信息输出到屏幕或文件中。

使用范例 
$ echo This is a test.
This is a test.
$ echo "This is a test." > ./test.txt
$ cat ./test.txt
This is a test.

可以使用ANSI转义代码图形再现序列（SGR sequences）输出彩色文字：

FGRED=`echo "\033[31m"`
FGCYAN=`echo "\033[36m"`
BGRED=`echo "\033[41m"`
FGBLUE=`echo "\033[35m"`
BGGREEN=`echo "\033[42m"`
#将终端颜色恢复为正常状态
NORMAL=`echo "\033[m"`
#然后：
echo "${FGBLUE} Text in blue ${NORMAL}"
echo "Text normal"
echo "${BGRED} Background in red"
echo "${BGGREEN} Background in Green and back to Normal ${NORMAL}"

有的Unix变种（例如Linux）支持选项-n和-e，且除非提供-e选项，否则不处理转义序列。例如，FGRED=`echo -e "\033[31m"` 可能会在Linux下使用。不幸的是，由于历史上BSD和System V的不兼容性，这不是标准选项；有问题时，可以使用printf命令。因此，建议使用printf，确保转义序列被正确处理。等效的printf代码就是FGRED=`printf "\033[31m"`。

DOS、Microsoft Windows支持选项on和off。例如，echo off可以关闭回显，即不显示命令提示符。

C:\>ECHO off
::注意下一条命令前无命令提示符
ECHO Hello World!
Hello World!
ECHO on
C:\>

一般，批处理会在首行执行此条命令，以关闭执行过程中的回显。然而，执行此条命令亦会显示命令提示符，需使用@echo off以关闭该条命令的回显。

@ECHO off
ECHO Hello World!
PAUSE

实现范例 
在C语言中，echo命令可以用几行代码实现：

#include <stdlib.h>
#include <stdio.h>
/* echo command-line arguments; 1st version */
int main(int argc, char *argv[])
{
  int i;
  for (i = 1; i < argc-1; i++)
  {
      printf("%s%s", argv[i], " ");
  }
  printf("%s%s", argv[argc-1], "\n");
  return EXIT_SUCCESS;
}

Perl中的实现也很简单：
#!/usr/bin/env perl
print join " ", @ARGV;

参考

外部链接 

Microsoft TechNet上的Echo帮助

参见 
Unix实用程序列表
MS-DOS命令列表

Windows管理
Unix SUS2008实用工具
标准Unix程序
内部DOS命令