The echo built-in prints its arguments.
Syntax
-
echo [string…]
The built-in treats all command line arguments as operands except for the options described below. Any word that cannot be parsed as an acceptable option is treated as an operand. Options must precede all operands. Syntax errors never happen in the echo built-in.
Description
The echo built-in prints the operand strings followed by a newline to the standard output. The strings are each separated by a space.
Escape sequences
The ECHO_STYLE
variable and the -e
option enable escape sequences that are
replaced with corresponding characters:
-
\a
-
Bell character (ASCII code: 7)
-
\b
-
Backspace (ASCII code: 8)
-
\c
-
Nothing. After this escape sequence, no characters are printed at all.
-
\e
-
Escape character (ASCII code: 27)
-
\f
-
Form feed character (ASCII code: 12)
-
\n
-
Newline character (ASCII code: 10)
-
\r
-
Carriage return character (ASCII code: 13)
-
\t
-
Horizontal tab character (ASCII code: 9)
-
\v
-
Vertical tab character (ASCII code: 11)
-
\\
-
Backslash
-
\0xxx
-
Character whose code is xxx, where xxx is an octal number of at most three digits.
When escape sequences are not enabled, they are just printed intact.
ECHO_STYLE
variable
The ECHO_STYLE
variable defines which
options are accepted and whether escape sequences are enabled by default.
The variable value should be set to one of the following:
-
SYSV
-
XSI
-
No options are accepted. Escape sequences are always enabled.
-
BSD
-
The
-n
option is accepted. Escape sequences are never enabled. -
GNU
-
The
-n
,-e
, and-E
options are accepted. Escape sequences are not enabled by default, but can be enabled by the-e
option. -
ZSH
-
The
-n
,-e
, and-E
options are accepted. Escape sequences are enabled by default, but can be disabled by the-E
option. -
DASH
-
The
-n
option is accepted. Escape sequences are always enabled. -
RAW
-
No options are accepted. Escape sequences are never enabled.
When the ECHO_STYLE
variable is not set, it defaults to SYSV
.
Options
-
-n
-
Do not print a newline at the end.
-
-e
-
Enable escape sequences.
-
-E
-
Disable escape sequences.
Exit status
The exit status of the echo built-in is zero unless there is any error.
Notes
The POSIX standard does not define the ECHO_STYLE
variable nor any options
for the built-in.
According to POSIX, the behavior of the built-in is implementation-defined
when the first argument is -n
or when any argument contains a backslash.
For maximum portability, the printf built-in should be
preferred over the echo built-in.
Although many values for the ECHO_STYLE
variable are defined on the basis of
other existing implementations, yash is not intended to exactly imitate those
originals. Zsh’s echo built-in interprets a single hyphen argument as a
separator between options and operands. Yash does not support such use of
hyphen.