echo - echo arguments
The echo utility writes its arguments, separated by BLANKs
and terminated by a NEWLINE, to the standard output. If
there are no arguments, only the NEWLINE character will be
echo is useful for producing diagnostics in command files,
for sending known data into a pipe, and for displaying the
contents of environment variables.
The C shell, the Korn shell, and the Bourne shell all have
echo built-in commands, which, by default, will be invoked
if the user calls echo without a full pathname. See
shell_builtins(1). sh's echo, ksh's echo, and /usr/bin/echo
understand the back-slashed escape characters, except that
sh's echo does not understand \a as the alert character. In
addition, ksh's echo, does not have an -n option. sh's echo
and /usr/bin/echo only have an -n option if the SYSV3
environment variable is set (see ENVIRONMENT VARIABLES
below). If it is, none of the backslashed characters men-
tioned above are available. csh's echo and /usr/ucb/echo, on
the other hand, have an -n option, but do not understand the
back-slashed escape characters.
The following operand is supported:
A string to be written to standard output. If any
operand is "-n", it will be treated as a string, not
an option. The following character sequences will be
recognized within any of the arguments:
\a Alert character.
\c Print line without new-line. All characters fol-
lowing the \c in the argument are ignored.
\r Carriage return.
\v Vertical tab.
\0n Where n is the 8-bit character whose ASCII code
is the 1-, 2- or 3-digit octal number represent-
ing that character.
Portable applications should not use -n (as the first argu-
ment) or escape sequences.
The printf(1) utility can be used portably to emulate any of
the traditional behaviors of the echo utility as follows:
o The Solaris 2.6 operating environment or compatible
version's /usr/bin/echo is equivalent to:
printf "%b\n" "$*"
o The /usr/ucb/echo is equivalent to:
if [ "X$1" = "X-n" ]
printf "%s" "$*"
printf "%s\n" "$*"
New applications are encouraged to use printf instead of
Example 1: Finding how far below root your current directory
You can use echo to determine how many subdirectories below
the root directory (/) is your current directory, as fol-
o Echo your current-working-directory's full pathname.
o Pipe the output through tr to translate the path's
embedded slash-characters into space-characters.
o Pipe that output through wc -w for a count of the
names in your path.
example% /usr/bin/echo $PWD | tr '/' ' ' | wc -w
See tr(1) and wc(1) for their functionality.
Below are the different flavors for echoing a string without
Example 2: /usr/bin/echo
example% /usr/bin/echo "$USER's current directory is $PWD\c"
Example 3: sh/ksh shells
example$ echo "$USER's current directory is $PWD\c"
Example 4: csh shell
example% echo -n "$USER's current directory is $PWD"
Example 5: /usr/ucb/echo
example% /usr/ucb/echo -n "$USER's current directory is $PWD"
See environ(5) for descriptions of the following environment
variables that affect the execution of echo: LANG, LC_ALL,
LC_CTYPE, LC_MESSAGES, and NLSPATH.
SYSV3 This environment variable is used to provide compati-
bility with INTERACTIVE UNIX System and SCO UNIX ins-
tallation scripts. It is intended for compatibility
only and should not be used in new scripts.
The following error values are returned:
0 Successful completion.
>0 An error occurred.
See attributes(5) for descriptions of the following attri-
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
| Availability | SUNWcsu |
| CSI | enabled |
| Interface Stability | Standard |
echo(1B), printf(1), shell_builtins(1), tr(1), wc(1),
ascii(5), attributes(5), environ(5), standards(5)
When representing an 8-bit character by using the escape
convention \0n, the n must always be preceded by the digit
For example, typing: echo 'WARNING:\07' will print the
phrase WARNING: and sound the "bell" on your terminal. The
use of single (or double) quotes (or two backslashes) is
required to protect the "\" that precedes the "07".
Following the \0, up to three digits are used in construct-
ing the octal output character. If, following the \0n, you
want to echo additional digits that are not part of the
octal representation, you must use the full 3-digit n. For
example, if you want to echo "ESC 7" you must use the three
digits "033" rather than just the two digits "33" after the
2 digits Incorrect: echo"0337 | od -xc
produces: df0a (hex)
3 digits Correct: echo "00337" | od -xc
produces: lb37 0a00 (hex)
033 7 (ascii)
For the octal equivalents of each character, see ascii(5).
Man(1) output converted with