Files
oldlinux-files/Ref-docs/POSIX/susv3/utilities/echo.html
2024-02-19 00:21:47 -05:00

334 lines
9.5 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta name="generator" content="HTML Tidy, see www.w3.org">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link type="text/css" rel="stylesheet" href="style.css"><!-- Generated by The Open Group's rhtm tool v1.2.1 -->
<!-- Copyright (c) 2001 The Open Group, All Rights Reserved -->
<title>echo</title>
</head>
<body bgcolor="white">
<script type="text/javascript" language="JavaScript" src="../jscript/codes.js">
</script>
<basefont size="3"> <a name="echo"></a> <a name="tag_04_41"></a><!-- echo -->
<!--header start-->
<center><font size="2">The Open Group Base Specifications Issue 6<br>
IEEE Std 1003.1-2001<br>
Copyright &copy; 2001 The IEEE and The Open Group, All Rights reserved.</font></center>
<!--header end-->
<hr size="2" noshade>
<h4><a name="tag_04_41_01"></a>NAME</h4>
<blockquote>echo - write arguments to standard output</blockquote>
<h4><a name="tag_04_41_02"></a>SYNOPSIS</h4>
<blockquote class="synopsis">
<p><code><tt>echo</tt> <b>[</b><i>string</i> <tt>...</tt><b>]</b></code></p>
</blockquote>
<h4><a name="tag_04_41_03"></a>DESCRIPTION</h4>
<blockquote>
<p>The <i>echo</i> utility writes its arguments to standard output, followed by a &lt;newline&gt;. If there are no arguments, only
the &lt;newline&gt; is written.</p>
</blockquote>
<h4><a name="tag_04_41_04"></a>OPTIONS</h4>
<blockquote>
<p>The <i>echo</i> utility shall not recognize the <tt>"--"</tt> argument in the manner specified by Guideline 10 of the Base
Definitions volume of IEEE&nbsp;Std&nbsp;1003.1-2001, <a href="../basedefs/xbd_chap12.html#tag_12_02">Section 12.2, Utility Syntax
Guidelines</a>; <tt>"--"</tt> shall be recognized as a string operand.</p>
<p>Implementations shall not support any options.</p>
</blockquote>
<h4><a name="tag_04_41_05"></a>OPERANDS</h4>
<blockquote>
<p>The following operands shall be supported:</p>
<dl compact>
<dt><i>string</i></dt>
<dd>A string to be written to standard output. If any operand is <b>-n</b>, it shall be treated as a string, not an option. The
following character sequences shall be recognized within any of the arguments:
<dl compact>
<dt><tt>\a</tt></dt>
<dd>Write an &lt;alert&gt;.</dd>
<dt><tt>\b</tt></dt>
<dd>Write a &lt;backspace&gt;.</dd>
<dt><tt>\c</tt></dt>
<dd>Suppress the &lt;newline&gt; that otherwise follows the final argument in the output. All characters following the
<tt>'\c'</tt> in the arguments shall be ignored.</dd>
<dt><tt>\f</tt></dt>
<dd>Write a &lt;form-feed&gt;.</dd>
<dt><tt>\n</tt></dt>
<dd>Write a &lt;newline&gt;.</dd>
<dt><tt>\r</tt></dt>
<dd>Write a &lt;carriage-return&gt;.</dd>
<dt><tt>\t</tt></dt>
<dd>Write a &lt;tab&gt;.</dd>
<dt><tt>\v</tt></dt>
<dd>Write a &lt;vertical-tab&gt;.</dd>
<dt><tt>\\</tt></dt>
<dd>Write a backslash character.</dd>
<dt><tt>\0</tt><i>num</i></dt>
<dd>Write an 8-bit value that is the zero, one, two, or three-digit octal number <i>num</i>.</dd>
</dl>
</dd>
</dl>
</blockquote>
<h4><a name="tag_04_41_06"></a>STDIN</h4>
<blockquote>
<p>Not used.</p>
</blockquote>
<h4><a name="tag_04_41_07"></a>INPUT FILES</h4>
<blockquote>
<p>None.</p>
</blockquote>
<h4><a name="tag_04_41_08"></a>ENVIRONMENT VARIABLES</h4>
<blockquote>
<p>The following environment variables shall affect the execution of <i>echo</i>:</p>
<dl compact>
<dt><i>LANG</i></dt>
<dd>Provide a default value for the internationalization variables that are unset or null. (See the Base Definitions volume of
IEEE&nbsp;Std&nbsp;1003.1-2001, <a href="../basedefs/xbd_chap08.html#tag_08_02">Section 8.2, Internationalization Variables</a> for
the precedence of internationalization variables used to determine the values of locale categories.)</dd>
<dt><i>LC_ALL</i></dt>
<dd>If set to a non-empty string value, override the values of all the other internationalization variables.</dd>
<dt><i>LC_CTYPE</i></dt>
<dd>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).</dd>
<dt><i>LC_MESSAGES</i></dt>
<dd>Determine the locale that should be used to affect the format and contents of diagnostic messages written to standard
error.</dd>
<dt><i>NLSPATH</i></dt>
<dd><sup>[<a href="javascript:open_code('XSI')">XSI</a>]</sup> <img src="../images/opt-start.gif" alt="[Option Start]" border="0">
Determine the location of message catalogs for the processing of <i>LC_MESSAGES .</i> <img src="../images/opt-end.gif" alt=
"[Option End]" border="0"></dd>
</dl>
</blockquote>
<h4><a name="tag_04_41_09"></a>ASYNCHRONOUS EVENTS</h4>
<blockquote>
<p>Default.</p>
</blockquote>
<h4><a name="tag_04_41_10"></a>STDOUT</h4>
<blockquote>
<p>The <i>echo</i> utility arguments shall be separated by single &lt;space&gt;s and a &lt;newline&gt; shall follow the last
argument. Output transformations shall occur based on the escape sequences in the input. See the OPERANDS section.</p>
</blockquote>
<h4><a name="tag_04_41_11"></a>STDERR</h4>
<blockquote>
<p>The standard error shall be used only for diagnostic messages.</p>
</blockquote>
<h4><a name="tag_04_41_12"></a>OUTPUT FILES</h4>
<blockquote>
<p>None.</p>
</blockquote>
<h4><a name="tag_04_41_13"></a>EXTENDED DESCRIPTION</h4>
<blockquote>
<p>None.</p>
</blockquote>
<h4><a name="tag_04_41_14"></a>EXIT STATUS</h4>
<blockquote>
<p>The following exit values shall be returned:</p>
<dl compact>
<dt>&nbsp;0</dt>
<dd>Successful completion.</dd>
<dt>&gt;0</dt>
<dd>An error occurred.</dd>
</dl>
</blockquote>
<h4><a name="tag_04_41_15"></a>CONSEQUENCES OF ERRORS</h4>
<blockquote>
<p>Default.</p>
</blockquote>
<hr>
<div class="box"><em>The following sections are informative.</em></div>
<h4><a name="tag_04_41_16"></a>APPLICATION USAGE</h4>
<blockquote>
<p>In the ISO/IEC&nbsp;9945-2:1993 standard, it was not possible to use <i>echo</i> portably across all systems that were not
XSI-conformant unless both <b>-n</b> (as the first argument) and escape sequences were omitted.</p>
<p>The <a href="../utilities/printf.html"><i>printf</i></a> utility can be used portably to emulate any of the traditional
behaviors of the <i>echo</i> utility as follows (assuming that <i>IFS</i> has its standard value or is unset):</p>
<ul>
<li>
<p>The historic System V <i>echo</i> and the current requirements in this volume of IEEE&nbsp;Std&nbsp;1003.1-2001 are equivalent
to:</p>
<pre>
<tt>printf "%b\n" "$*"
</tt>
</pre>
</li>
<li>
<p>The BSD <i>echo</i> is equivalent to:</p>
<pre>
<tt>if [ "X$1" = "X-n" ]
then
shift
printf "%s" "$*"
else
printf "%s\n" "$*"
fi
</tt>
</pre>
</li>
</ul>
<p>New applications are encouraged to use <a href="../utilities/printf.html"><i>printf</i></a> instead of <i>echo</i>.</p>
</blockquote>
<h4><a name="tag_04_41_17"></a>EXAMPLES</h4>
<blockquote>
<p>None.</p>
</blockquote>
<h4><a name="tag_04_41_18"></a>RATIONALE</h4>
<blockquote>
<p>The <i>echo</i> utility has not been made obsolescent because of its extremely widespread use in historical applications.
Conforming applications that wish to do prompting without &lt;newline&gt;s or that could possibly be expecting to echo a <b>-n</b>,
should use the <a href="../utilities/printf.html"><i>printf</i></a> utility derived from the Ninth Edition system.</p>
<p>As specified, <i>echo</i> writes its arguments in the simplest of ways. The two different historical versions of <i>echo</i>
vary in fatally incompatible ways.</p>
<p>The BSD <i>echo</i> checks the first argument for the string <b>-n</b> which causes it to suppress the &lt;newline&gt; that
would otherwise follow the final argument in the output.</p>
<p>The System V <i>echo</i> does not support any options, but allows escape sequences within its operands, as described in the
OPERANDS section.</p>
<p>The <i>echo</i> utility does not support Utility Syntax Guideline 10 because historical applications depend on <i>echo</i> to
echo <i>all</i> of its arguments, except for the <b>-n</b> option in the BSD version.</p>
</blockquote>
<h4><a name="tag_04_41_19"></a>FUTURE DIRECTIONS</h4>
<blockquote>
<p>None.</p>
</blockquote>
<h4><a name="tag_04_41_20"></a>SEE ALSO</h4>
<blockquote>
<p><a href="printf.html"><i>printf</i></a></p>
</blockquote>
<h4><a name="tag_04_41_21"></a>CHANGE HISTORY</h4>
<blockquote>
<p>First released in Issue 2.</p>
</blockquote>
<h4><a name="tag_04_41_22"></a>Issue 5</h4>
<blockquote>
<p>In the OPTIONS section, the last sentence is changed to indicate that implementations &quot;do not&quot; support any options; in the
previous issue this said &quot;need not&quot;.</p>
</blockquote>
<h4><a name="tag_04_41_23"></a>Issue 6</h4>
<blockquote>
<p>The following new requirements on POSIX implementations derive from alignment with the Single UNIX Specification:</p>
<ul>
<li>
<p>A set of character sequences is defined as <i>string</i> operands.</p>
</li>
<li>
<p><i>LC_CTYPE</i> is added to the list of environment variables affecting <i>echo</i>.</p>
</li>
<li>
<p>In the OPTIONS section, implementations shall not support any options.</p>
</li>
</ul>
</blockquote>
<div class="box"><em>End of informative text.</em></div>
<hr>
<hr size="2" noshade>
<center><font size="2"><!--footer start-->
UNIX &reg; is a registered Trademark of The Open Group.<br>
POSIX &reg; is a registered Trademark of The IEEE.<br>
[ <a href="../mindex.html">Main Index</a> | <a href="../basedefs/contents.html">XBD</a> | <a href=
"../utilities/contents.html">XCU</a> | <a href="../functions/contents.html">XSH</a> | <a href="../xrat/contents.html">XRAT</a>
]</font></center>
<!--footer end-->
<hr size="2" noshade>
</body>
</html>