Provided by: manpages-posix_2013a-1_all bug

PROLOG

       This  manual  page is part of the POSIX Programmer's Manual.  The Linux
       implementation of this interface may differ (consult the  corresponding
       Linux  manual page for details of Linux behavior), or the interface may
       not be implemented on Linux.

NAME

       echo — write arguments to standard output

SYNOPSIS

       echo [string...]

DESCRIPTION

       The echo utility writes its arguments to standard output, followed by a
       <newline>.  If there are no arguments, only the <newline> is written.

OPTIONS

       The  echo  utility  shall not recognize the "−−" argument in the manner
       specified  by  Guideline  10  of  the  Base   Definitions   volume   of
       POSIX.1‐2008,  Section  12.2,  Utility Syntax Guidelines; "−−" shall be
       recognized as a string operand.

       Implementations shall not support any options.

OPERANDS

       The following operands shall be supported:

       string    A string to be written  to  standard  output.  If  the  first
                 operand   is  −n,  or  if  any  of  the  operands  contain  a
                 <backslash>  character,  the  results   are   implementation-
                 defined.

                 On  XSI-conformant  systems,  if  the first operand is −n, it
                 shall be treated as a string, not an  option.  The  following
                 character  sequences  shall  be  recognized on XSI-conformant
                 systems within any of the arguments:

                 \a      Write an <alert>.

                 \b      Write a <backspace>.

                 \c      Suppress the <newline>  that  otherwise  follows  the
                         final   argument   in   the  output.  All  characters
                         following the '\c' in the arguments shall be ignored.

                 \f      Write a <form-feed>.

                 \n      Write a <newline>.

                 \r      Write a <carriage-return>.

                 \t      Write a <tab>.

                 \v      Write a <vertical-tab>.

                 \\      Write a <backslash> character.

                 \0num   Write an 8-bit value that is the zero, one,  two,  or
                         three-digit octal number num.

STDIN

       Not used.

INPUT FILES

       None.

ENVIRONMENT VARIABLES

       The following environment variables shall affect the execution of echo:

       LANG      Provide   a   default   value  for  the  internationalization
                 variables that are unset or null. (See the  Base  Definitions
                 volume  of  POSIX.1‐2008,  Section  8.2, Internationalization
                 Variables  for   the   precedence   of   internationalization
                 variables used to determine the values of locale categories.)

       LC_ALL    If  set  to  a non-empty string value, override the values of
                 all the other internationalization variables.

       LC_CTYPE  Determine the locale for the interpretation of  sequences  of
                 bytes of text data as characters (for example, single-byte as
                 opposed to multi-byte characters in arguments).

       LC_MESSAGES
                 Determine the locale that should be used to affect the format
                 and  contents  of  diagnostic  messages  written  to standard
                 error.

       NLSPATH   Determine the location of message catalogs for the processing
                 of LC_MESSAGES.

ASYNCHRONOUS EVENTS

       Default.

STDOUT

       The  echo  utility  arguments  shall  be  separated  by  single <space>
       characters and a <newline> character shall follow  the  last  argument.
       Output transformations shall occur based on the escape sequences in the
       input. See the OPERANDS section.

STDERR

       The standard error shall be used only for diagnostic messages.

OUTPUT FILES

       None.

EXTENDED DESCRIPTION

       None.

EXIT STATUS

       The following exit values shall be returned:

        0    Successful completion.

       >0    An error occurred.

CONSEQUENCES OF ERRORS

       Default.

       The following sections are informative.

APPLICATION USAGE

       It is not possible to use echo portably across all POSIX systems unless
       both −n (as the first argument) and escape sequences are omitted.

       The  printf  utility  can  be  used  portably  to  emulate  any  of the
       traditional behaviors of the echo utility as follows (assuming that IFS
       has its standard value or is unset):

        *  The   historic   System   V   echo  and  the  requirements  on  XSI
           implementations in this volume of POSIX.1‐2008 are equivalent to:

               printf "%b\n$*"

        *  The BSD echo is equivalent to:

               if [ "X$1" = "Xn" ]
               then
                   shift
                   printf "%s$*"
               else
                   printf "%s\n$*"
               fi

       New applications are encouraged to use printf instead of echo.

EXAMPLES

       None.

RATIONALE

       The echo utility has not been made obsolescent because of its extremely
       widespread use in historical applications. Conforming applications that
       wish to  do  prompting  without  <newline>  characters  or  that  could
       possibly  be  expecting  to  echo  a  −n, should use the printf utility
       derived from the Ninth Edition system.

       As specified, echo writes its arguments in the simplest  of  ways.  The
       two  different historical versions of echo vary in fatally incompatible
       ways.

       The BSD echo checks the first argument for the string −n  which  causes
       it  to  suppress  the  <newline>  that would otherwise follow the final
       argument in the output.

       The System V echo does not  support  any  options,  but  allows  escape
       sequences  within its operands, as described for XSI implementations in
       the OPERANDS section.

       The echo utility does not support Utility Syntax Guideline  10  because
       historical  applications  depend  on echo to echo all of its arguments,
       except for the −n option in the BSD version.

FUTURE DIRECTIONS

       None.

SEE ALSO

       printf

       The Base Definitions volume of  POSIX.1‐2008,  Chapter  8,  Environment
       Variables, Section 12.2, Utility Syntax Guidelines

COPYRIGHT

       Portions  of  this text are reprinted and reproduced in electronic form
       from IEEE Std 1003.1, 2013 Edition, Standard for Information Technology
       --  Portable  Operating  System  Interface (POSIX), The Open Group Base
       Specifications  Issue  7,  Copyright  (C)  2013  by  the  Institute  of
       Electrical and Electronics Engineers, Inc and The Open Group.  (This is
       POSIX.1-2008 with the 2013 Technical Corrigendum  1  applied.)  In  the
       event of any discrepancy between this version and the original IEEE and
       The Open Group Standard, the original IEEE and The Open Group  Standard
       is  the  referee document. The original Standard can be obtained online
       at http://www.unix.org/online.html .

       Any typographical or formatting errors that appear  in  this  page  are
       most likely to have been introduced during the conversion of the source
       files   to   man   page   format.   To   report   such   errors,    see
       https://www.kernel.org/doc/man-pages/reporting_bugs.html .