echo
is
shell
Shell may refer to:
Architecture and design
* Shell (structure), a thin structure
** Concrete shell, a thin shell of concrete, usually with no interior columns or exterior buttresses
Science Biology
* Seashell, a hard outer layer of a marine ani ...
command that writes input text to
standard output Standard may refer to:
Symbols
* Colours, standards and guidons, kinds of military signs
* Standard (emblem), a type of a large symbol or emblem used for identification
Norms, conventions or requirements
* Standard (metrology), an object t ...
. It is available in many
operating system
An operating system (OS) is system software that manages computer hardware and software resources, and provides common daemon (computing), services for computer programs.
Time-sharing operating systems scheduler (computing), schedule tasks for ...
and
shells. It is often used in a
shell script to
log status, provide feedback to the user and for
debugging. For an interactive session, output by default displays on the
terminal screen, but output can be
re-directed to a
file or
piped to another process.
Many shells implement
echo
as a
builtin command rather than an external
application as are many other commands.
Multiple, incompatible implementations of
echo
exist in different shells. Some expand escape sequences by default; some do not; some accept options; some do not. The
POSIX
The Portable Operating System Interface (POSIX; ) is a family of standards specified by the IEEE Computer Society for maintaining compatibility between operating systems. POSIX defines application programming interfaces (APIs), along with comm ...
specification
leaves the behavior unspecified if the first argument is
-n
or any argument contains backslash characters while the Unix specification (XSI option in POSIX) mandates the expansion of some sequences and does not allow any option processing. In practice, many
echo
implementations are not compliant in the default environment. Because of these variations,
echo
is considered a non-portable command
and the
printf
command (introduced in Ninth Edition Unix) is preferred instead.
Implementations
The command is available the following shells or at least one shell of a listed operating system:
*
Unix and
Unix-like
A Unix-like (sometimes referred to as UN*X, *nix or *NIX) operating system is one that behaves in a manner similar to a Unix system, although not necessarily conforming to or being certified to any version of the Single UNIX Specification. A Uni ...
shells
*
Windows
*
Multics
*
OS/2
OS/2 is a Proprietary software, proprietary computer operating system for x86 and PowerPC based personal computers. It was created and initially developed jointly by IBM and Microsoft, under the leadership of IBM software designer Ed Iacobucci, ...
*
DOS
*
TSC FLEX
*
MetaComCo TRIPOS
*
Zilog Z80-RIO
*
OS-9
*
Panos
*
FlexOS
*
ReactOS
ReactOS is a Free and open-source software, free and open-source operating system for i586/amd64 personal computers that is intended to be binary-code compatibility, binary-compatible with computer programs and device drivers developed for Wind ...
*
MPE/iX
*
KolibriOS
*
SymbOS
*
EFI shell.
History
echo
began within
Multics. After it was programmed in
C by
Doug McIlroy as a "finger exercise" and proved to be useful, it became part of
Version 2 Unix.
echo -n
in
Version 7 replaced
prompt
, (which behaved like
echo
but without terminating its output with a line delimiter).
On
PWB/UNIX and later
Unix System III,
echo
started expanding
C escape sequences such as
\n
with the notable difference that octal escape sequences were expressed as
\0ooo
instead of
\ooo
in C.
Eighth Edition Unix echo
only did the escape expansion when passed a
-e
option,
and that behaviour was copied by a few other implementations such as the builtin
echo
command of
Bash or
zsh and GNU
echo
.
On
MS-DOS, the command is available in versions 2 and later.
Examples
C:\>echo Hello world
Hello world
Using
ANSI escape code ''SGR'' sequences, compatible terminals can print out colored text.
Using a
UNIX System III-style implementation:
BGRED=`echo "\033[41m"`
FGBLUE=`echo "\033[35m"`
BGGREEN=`echo "\033[42m"`
NORMAL=`echo "\033[m"`
Or a Unix Version 8-style implementation (such as Bash when not in Unix-conformance mode):
BGRED=`echo -e "\033[41m"`
FGBLUE=`echo -e "\033[35m"`
BGGREEN=`echo -e "\033[42m"`
NORMAL=`echo -e "\033[m"`
and after:
echo "$ Text in blue $"
echo "Text normal"
echo "$ Background in red"
echo "$ Background in Green and back to Normal $"
Portably with
printf
:
BGRED=`printf '\33[41m'`
NORMAL=`printf '\33[m'`
printf '%s\n' "$Text on red background$"
See also
*
*
References
Further reading
*
*
*
External links
*
*
*
Microsoft TechNet Echo article
{{Windows commands
Internal DOS commands
MSX-DOS commands
OS/2 commands
ReactOS commands
Windows commands
Multics commands
Standard Unix programs
Unix SUS2008 utilities
Plan 9 commands
Inferno (operating system) commands
IBM i Qshell commands