| .\" Copyright (c) 1991, 1993 | |
| .\" The Regents of the University of California. All rights reserved. | |
| .\" Copyright (c) 1997-2005 | |
| .\" Herbert Xu <herbert@gondor.apana.org.au>. All rights reserved. | |
| .\" | |
| .\" This code is derived from software contributed to Berkeley by | |
| .\" Kenneth Almquist. | |
| .\" Copyright 1989 by Kenneth Almquist | |
| .\" | |
| .\" Redistribution and use in source and binary forms, with or without | |
| .\" modification, are permitted provided that the following conditions | |
| .\" are met: | |
| .\" 1. Redistributions of source code must retain the above copyright | |
| .\" notice, this list of conditions and the following disclaimer. | |
| .\" 2. Redistributions in binary form must reproduce the above copyright | |
| .\" notice, this list of conditions and the following disclaimer in the | |
| .\" documentation and/or other materials provided with the distribution. | |
| .\" 3. Neither the name of the University nor the names of its contributors | |
| .\" may be used to endorse or promote products derived from this software | |
| .\" without specific prior written permission. | |
| .\" | |
| .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND | |
| .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | |
| .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | |
| .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE | |
| .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | |
| .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | |
| .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | |
| .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | |
| .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | |
| .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | |
| .\" SUCH DAMAGE. | |
| .\" | |
| .\" @(#)echo.1 8.1 (Berkeley) 5/31/93 | |
| .\" | |
| .Dd May 31, 1993 | |
| .Dt ECHO 1 | |
| .Os | |
| .Sh NAME | |
| .Nm echo | |
| .Nd produce message in a shell script | |
| .Sh SYNOPSIS | |
| .Nm | |
| .Op Fl n | Fl e | |
| .Ar args ... | |
| .Sh DESCRIPTION | |
| .Nm | |
| prints its arguments on the standard output, separated by spaces. | |
| Unless the | |
| .Fl n | |
| option is present, a newline is output following the arguments. | |
| The | |
| .Fl e | |
| option causes | |
| .Nm | |
| to treat the escape sequences specially, as described in the following | |
| paragraph. | |
| The | |
| .Fl e | |
| option is the default, and is provided solely for compatibility with | |
| other systems. | |
| Only one of the options | |
| .Fl n | |
| and | |
| .Fl e | |
| may be given. | |
| .Pp | |
| If any of the following sequences of characters is encountered during | |
| output, the sequence is not output. | |
| Instead, the specified action is | |
| performed: | |
| .Bl -tag -width indent | |
| .It Li \eb | |
| A backspace character is output. | |
| .It Li \ec | |
| Subsequent output is suppressed. | |
| This is normally used at the end of the | |
| last argument to suppress the trailing newline that | |
| .Nm | |
| would otherwise output. | |
| .It Li \ef | |
| Output a form feed. | |
| .It Li \en | |
| Output a newline character. | |
| .It Li \er | |
| Output a carriage return. | |
| .It Li \et | |
| Output a (horizontal) tab character. | |
| .It Li \ev | |
| Output a vertical tab. | |
| .It Li \e0 Ns Ar digits | |
| Output the character whose value is given by zero to three digits. | |
| If there are zero digits, a nul character is output. | |
| .It Li \e\e | |
| Output a backslash. | |
| .El | |
| .Sh HINTS | |
| Remember that backslash is special to the shell and needs to be escaped. | |
| To output a message to standard error, say | |
| .Pp | |
| .D1 echo message \*[Gt]\*[Am]2 | |
| .Sh BUGS | |
| The octal character escape mechanism | |
| .Pq Li \e0 Ns Ar digits | |
| differs from the | |
| C language mechanism. | |
| .Pp | |
| There is no way to force | |
| .Nm | |
| to treat its arguments literally, rather than interpreting them as | |
| options and escape sequences. |