ECHO(1POSIX)
π ECHO(1POSIX) β the POSIX Programmer's Manual, bestie edition π
okay so before we even get into it, a lil heads up from the PROLOG: this page is part of the POSIX Programmer's Manual, which means the Linux implementation of this interface might do its own thing (so go check the matching Linux man page for the tea β), or honestly the interface might not even be implemented on Linux at all. no cap.
πΈ NAME πΈ
echo β write arguments to standard output. that's it. that's the whole job. she's simple, she's iconic, she's everywhere. π
β¨ SYNOPSIS β¨
echo [string...]
π¦ DESCRIPTION π¦
so the echo utility writes its arguments to standard output, and then tacks on a <newline> at the end, like a little bow on a gift π. and if you give her no arguments at all? she still writes the <newline>. nothing but vibes and a line break, periodt.
π OPTIONS π
okay bestie, sit down for this one because it's a lil unhinged:
echo shall not recognize the "--" argument the way Guideline 10 of the Base Definitions volume of POSIX.1β2017, Section 12.2, Utility Syntax Guidelines says it should. nope. instead, "--" shall be recognized as a string operand. it's giving "we don't do that here" π.
and on top of that β implementations shall not support any options. zero. none. don't even try, she's not accepting applications.
π OPERANDS π
the following operands shall be supported:
stringβ a string to be written to standard output. BUT (and this is the important part, don't skip it π): if the first operand is-n, or if any of the operands contain a<backslash>character, the results are implementation-defined. yes, you read that right. implementation-defined. it's giving chaos, honestly.
on XSI-conformant systems, if the first operand is -n, it shall be treated as a string, not an option. and 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. (she said "we're done here" β)\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 numbernum.
π STDIN π
not used. she's not listening, bestie. π
π INPUT FILES π
none. nada. zero files were harmed in the making of this utility.
πΈ 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β2017, 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. she's the main character, she overrides everyone. π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 ofLC_MESSAGES.
π§ ASYNCHRONOUS EVENTS π§
default. she's chill like that.
β 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 β go peek at the OPERANDS section for the full rundown, iykyk.
π STDERR π
the standard error shall be used only for diagnostic messages. that's her venting channel, not her main feed.
π OUTPUT FILES π
none. again. nothing. empty. ghost town. π«Ά
β¨ EXTENDED DESCRIPTION β¨
none. we love a girl with no extended lore. π
π₯ EXIT STATUS π₯
the following exit values shall be returned:
0β successful completion. slay. π>0β an error occurred. π
π CONSEQUENCES OF ERRORS π
default.
heads up: the following sections are informative. so like, no rules, just vibes and context. π
π APPLICATION USAGE π
okay so real talk bestie: it is not possible to use echo portably across all POSIX systems unless both -n (as the first argument) and escape sequences are omitted. yeah. that's the whole mood. no cap.
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
echoand the requirements on XSI implementations in this volume of POSIX.1β2017 are equivalent to:
printf "%b\n$*"
- the BSD
echois equivalent to:
if [ "X$1" = "X-n" ]
then
shift
printf "%s$*"
else
printf "%s\n$*"
fi
new applications are encouraged to use printf instead of echo. fr fr. take the glow-up.
π¦ EXAMPLES π¦
none. she doesn't need to prove anything. π
π RATIONALE π
the echo utility has not been made obsolescent because of its extremely widespread use in historical applications. iconic behavior, honestly. 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. π like, actually fatal. not a drill.
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. she's carrying legacy on her back and she's doing it flawlessly. π«Ά
β FUTURE DIRECTIONS β
none. she's timeless.
πΈ SEE ALSO πΈ
printf- the Base Definitions volume of POSIX.1β2017, 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-2017, Standard for Information Technology -- Portable Operating System Interface (POSIX), The Open Group Base Specifications Issue 7, 2018 Edition, Copyright (C) 2018 by the Institute of Electrical and Electronics Engineers, Inc and The Open Group. 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.opengroup.org/unix/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 .
okay that's the whole page bestie, ily, go forth and echo responsibly π«Άβ¨ this was brought to you by IEEE/The Open Group, 2017 β and that's the ECHO(1POSIX) vibe check, passed with flying colors. π
π
π¦ where this page comes from
- debian bookworm: manpages-posix 2017a-2 Β· Other
- debian trixie: manpages-posix 2017a-2 Β· Other
- ubuntu jammy: manpages-posix 2017a-2 Β· Other
- ubuntu noble: manpages-posix 2017a-2 Β· Other
- ubuntu resolute: manpages-posix 2017a-2build1 Β· Other
- ubuntu stonking: manpages-posix 2017a-2.1 Β· Other
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms