xref: /freebsd/bin/echo/echo.1 (revision a90b9d0159070121c221b966469c3e36d912bf82)
1.\"-
2.\" Copyright (c) 1990, 1993
3.\"	The Regents of the University of California.  All rights reserved.
4.\"
5.\" This code is derived from software contributed to Berkeley by
6.\" the Institute of Electrical and Electronics Engineers, Inc.
7.\"
8.\" Redistribution and use in source and binary forms, with or without
9.\" modification, are permitted provided that the following conditions
10.\" are met:
11.\" 1. Redistributions of source code must retain the above copyright
12.\"    notice, this list of conditions and the following disclaimer.
13.\" 2. Redistributions in binary form must reproduce the above copyright
14.\"    notice, this list of conditions and the following disclaimer in the
15.\"    documentation and/or other materials provided with the distribution.
16.\" 3. Neither the name of the University nor the names of its contributors
17.\"    may be used to endorse or promote products derived from this software
18.\"    without specific prior written permission.
19.\"
20.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
21.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
24.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
26.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
27.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
28.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
29.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
30.\" SUCH DAMAGE.
31.\"
32.Dd October 5, 2016
33.Dt ECHO 1
34.Os
35.Sh NAME
36.Nm echo
37.Nd write arguments to the standard output
38.Sh SYNOPSIS
39.Nm
40.Op Fl n
41.Op Ar string ...
42.Sh DESCRIPTION
43The
44.Nm
45utility writes any specified operands, separated by single blank
46.Pq Ql "\ "
47characters and followed by a newline
48.Pq Ql \en
49character, to the standard
50output.
51.Pp
52The following option is available:
53.Bl -tag -width flag
54.It Fl n
55Do not print the trailing newline character.
56.El
57.Pp
58The end-of-options marker
59.Fl Fl
60is not recognized and written literally.
61.Pp
62The newline may also be suppressed by appending
63.Ql \ec
64to the end of the string, as is done
65by iBCS2 compatible systems.
66Note that the
67.Fl n
68option as well as the effect of
69.Ql \ec
70are implementation-defined in
71.St -p1003.1-2001
72as amended by Cor.\& 1-2002.
73For portability,
74.Nm
75should only be used if the first argument does not start with a hyphen
76.Pq Ql "-"
77and does not contain any backslashes
78.Pq Ql "\e" .
79If this is not sufficient,
80.Xr printf 1
81should be used.
82.Pp
83Most shells provide a builtin
84.Nm
85command which tends to differ from this utility
86in the treatment of options and backslashes.
87Consult the
88.Xr builtin 1
89manual page.
90.Sh EXIT STATUS
91.Ex -std
92.Sh EXAMPLES
93Special treatment of options and backslashes:
94.Bd -literal -offset indent
95$ /bin/echo "-hello\\tworld"
96-hello\tworld
97.Ed
98.Pp
99Avoid new line character:
100.Bd -literal -offset indent
101$ /bin/echo -n hello;/bin/echo world
102helloworld
103.Ed
104.Pp
105Or to achieve the same result:
106.Bd -literal -offset indent
107$ /bin/echo "hello\\c";/bin/echo world
108helloworld
109.Ed
110.Sh SEE ALSO
111.Xr builtin 1 ,
112.Xr csh 1 ,
113.Xr printf 1 ,
114.Xr sh 1
115.Sh STANDARDS
116The
117.Nm
118utility conforms to
119.St -p1003.1-2001
120as amended by Cor.\& 1-2002.
121.Sh HISTORY
122The
123.Nm
124command appeared in
125.At v2 .
126.Sh CAVEATS
127The
128.Nm
129command behaves differently with regards to the built-in
130.Nm
131shell command in a number of ways including escaped characters handling.
132It also differs in behavior between different systems hence complicating writing
133portable scripts.
134It is advised to use the
135.Xr printf 1
136command to avoid these shortcomings.
137