echo (command)

From Wikipedia, the free encyclopedia
Jump to: navigation, search

In computing, echo is a command in DOS, OS/2, Microsoft Windows, Singularity, Unix and Unix-like operating systems that places a string on the computer terminal. It is a built-in command typically used in shell scripts and batch files to output status text to the screen or a file.

Many shells, including Bash[1] and zsh,[2] implement echo as a builtin command.

Usage example[edit]

> echo Hello world
Hello world

Using ANSI escape code SGR sequences, compatible terminals can print out colored text:

FGRED=`echo "\033[31m"`
FGCYAN=`echo "\033[36m"`
BGRED=`echo "\033[41m"`
FGBLUE=`echo "\033[35m"`
BGGREEN=`echo "\033[42m"`
 
NORMAL=`echo "\033[m"`

and after :

echo "${FGBLUE} Text in blue ${NORMAL}"
echo "Text normal"
echo "${BGRED} Background in red"
echo "${BGGREEN} Background in Green and back to Normal ${NORMAL}"

Some variants of Unix, such as Linux, support the options -n and -e, and do not process escape sequences unless the -e option is supplied. For example, FGRED=`echo -e "\033[31m"` might be used under Linux. Unfortunately, such options are non standard[3] due to historical incompatibilities between BSD and System V; the printf command can be used in situations where this is a problem. It is therefore recommended that printf be used to ensure that escape sequences are processed. The equivalent code using printf is simply FGRED=`printf "\033[31m"`.

Implementation example[edit]

The echo command can be implemented in the C programming language with only a few lines of code:

#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++)
  {
    (void) printf("%s%s", argv[i], " ");
  }
  (void) printf("%s%s", argv[argc-1], "\n");
  return EXIT_SUCCESS;
}

Scripting Languages can also emulate echo quite simply:

$ perl -e 'print join " ", @ARGV; print "\n"' This is a test.
This is a test.
$ python -c "import sys; print ' '.join(sys.argv[1:])" This is a test.
This is a test.

See also[edit]

References[edit]

External links[edit]