mirror of https://github.com/mkerrisk/man-pages
215 lines
5.8 KiB
Groff
215 lines
5.8 KiB
Groff
|
.\" Copyright (c) 2001-2003 The Open Group, All Rights Reserved
|
||
|
.TH "READ" P 2003 "IEEE/The Open Group" "POSIX Programmer's Manual"
|
||
|
.\" read
|
||
|
.SH NAME
|
||
|
read \- read a line from standard input
|
||
|
.SH SYNOPSIS
|
||
|
.LP
|
||
|
\fBread\fP \fB[\fP\fB-r\fP\fB]\fP \fIvar\fP\fB...\fP
|
||
|
.SH DESCRIPTION
|
||
|
.LP
|
||
|
The \fIread\fP utility shall read a single line from standard input.
|
||
|
.LP
|
||
|
By default, unless the \fB-r\fP option is specified, backslash ( \fB'\\'\fP
|
||
|
) shall act as an escape character, as described
|
||
|
in \fIEscape Character (Backslash)\fP . If standard input is a terminal
|
||
|
device and the
|
||
|
invoking shell is interactive, \fIread\fP shall prompt for a continuation
|
||
|
line when:
|
||
|
.IP " *" 3
|
||
|
The shell reads an input line ending with a backslash, unless the
|
||
|
\fB-r\fP option is specified.
|
||
|
.LP
|
||
|
.IP " *" 3
|
||
|
A here-document is not terminated after a <newline> is entered.
|
||
|
.LP
|
||
|
.LP
|
||
|
The line shall be split into fields as in the shell (see \fIField
|
||
|
Splitting\fP );
|
||
|
the first field shall be assigned to the first variable \fIvar\fP,
|
||
|
the second field to the second variable \fIvar\fP, and so on.
|
||
|
If there are fewer \fIvar\fP operands specified than there are fields,
|
||
|
the leftover fields and their intervening separators shall
|
||
|
be assigned to the last \fIvar\fP. If there are fewer fields than
|
||
|
\fIvar\fPs, the remaining \fIvar\fPs shall be set to empty
|
||
|
strings.
|
||
|
.LP
|
||
|
The setting of variables specified by the \fIvar\fP operands shall
|
||
|
affect the current shell execution environment; see \fIShell Execution
|
||
|
Environment\fP . If it is called in a subshell or separate utility
|
||
|
execution
|
||
|
environment, such as one of the following:
|
||
|
.sp
|
||
|
.RS
|
||
|
.nf
|
||
|
|
||
|
\fB(read foo)
|
||
|
nohup read ...
|
||
|
find . -exec read ... \\;
|
||
|
\fP
|
||
|
.fi
|
||
|
.RE
|
||
|
.LP
|
||
|
it shall not affect the shell variables in the caller's environment.
|
||
|
.SH OPTIONS
|
||
|
.LP
|
||
|
The \fIread\fP utility shall conform to the Base Definitions volume
|
||
|
of IEEE\ Std\ 1003.1-2001, Section 12.2, Utility Syntax Guidelines.
|
||
|
.LP
|
||
|
The following option is supported:
|
||
|
.TP 7
|
||
|
\fB-r\fP
|
||
|
Do not treat a backslash character in any special way. Consider each
|
||
|
backslash to be part of the input line.
|
||
|
.sp
|
||
|
.SH OPERANDS
|
||
|
.LP
|
||
|
The following operand shall be supported:
|
||
|
.TP 7
|
||
|
\fIvar\fP
|
||
|
The name of an existing or nonexisting shell variable.
|
||
|
.sp
|
||
|
.SH STDIN
|
||
|
.LP
|
||
|
The standard input shall be a text file.
|
||
|
.SH INPUT FILES
|
||
|
.LP
|
||
|
None.
|
||
|
.SH ENVIRONMENT VARIABLES
|
||
|
.LP
|
||
|
The following environment variables shall affect the execution of
|
||
|
\fIread\fP:
|
||
|
.TP 7
|
||
|
\fIIFS\fP
|
||
|
Determine the internal field separators used to delimit fields; see
|
||
|
\fIShell
|
||
|
Variables\fP .
|
||
|
.TP 7
|
||
|
\fILANG\fP
|
||
|
Provide a default value for the internationalization variables that
|
||
|
are unset or null. (See the Base Definitions volume of
|
||
|
IEEE\ Std\ 1003.1-2001, Section 8.2, Internationalization Variables
|
||
|
for
|
||
|
the precedence of internationalization variables used to determine
|
||
|
the values of locale categories.)
|
||
|
.TP 7
|
||
|
\fILC_ALL\fP
|
||
|
If set to a non-empty string value, override the values of all the
|
||
|
other internationalization variables.
|
||
|
.TP 7
|
||
|
\fILC_CTYPE\fP
|
||
|
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).
|
||
|
.TP 7
|
||
|
\fILC_MESSAGES\fP
|
||
|
Determine the locale that should be used to affect the format and
|
||
|
contents of diagnostic messages written to standard
|
||
|
error.
|
||
|
.TP 7
|
||
|
\fINLSPATH\fP
|
||
|
Determine the location of message catalogs for the processing of \fILC_MESSAGES
|
||
|
\&.\fP
|
||
|
.TP 7
|
||
|
\fIPS2\fP
|
||
|
Provide the prompt string that an interactive shell shall write to
|
||
|
standard error when a line ending with a backslash is read
|
||
|
and the \fB-r\fP option was not specified, or if a here-document is
|
||
|
not terminated after a <newline> is entered.
|
||
|
.sp
|
||
|
.SH ASYNCHRONOUS EVENTS
|
||
|
.LP
|
||
|
Default.
|
||
|
.SH STDOUT
|
||
|
.LP
|
||
|
Not used.
|
||
|
.SH STDERR
|
||
|
.LP
|
||
|
The standard error shall be used for diagnostic messages and prompts
|
||
|
for continued input.
|
||
|
.SH OUTPUT FILES
|
||
|
.LP
|
||
|
None.
|
||
|
.SH EXTENDED DESCRIPTION
|
||
|
.LP
|
||
|
None.
|
||
|
.SH EXIT STATUS
|
||
|
.LP
|
||
|
The following exit values shall be returned:
|
||
|
.TP 7
|
||
|
\ 0
|
||
|
Successful completion.
|
||
|
.TP 7
|
||
|
>0
|
||
|
End-of-file was detected or an error occurred.
|
||
|
.sp
|
||
|
.SH CONSEQUENCES OF ERRORS
|
||
|
.LP
|
||
|
Default.
|
||
|
.LP
|
||
|
\fIThe following sections are informative.\fP
|
||
|
.SH APPLICATION USAGE
|
||
|
.LP
|
||
|
The \fB-r\fP option is included to enable \fIread\fP to subsume the
|
||
|
purpose of the \fIline\fP utility, which is not included
|
||
|
in IEEE\ Std\ 1003.1-2001.
|
||
|
.LP
|
||
|
The results are undefined if an end-of-file is detected following
|
||
|
a backslash at the end of a line when \fB-r\fP is not
|
||
|
specified.
|
||
|
.SH EXAMPLES
|
||
|
.LP
|
||
|
The following command:
|
||
|
.sp
|
||
|
.RS
|
||
|
.nf
|
||
|
|
||
|
\fBwhile read -r xx yy
|
||
|
do
|
||
|
printf "%s %s\\n" "$yy" "$xx"
|
||
|
done <\fP \fIinput_file\fP
|
||
|
.fi
|
||
|
.RE
|
||
|
.LP
|
||
|
prints a file with the first field of each line moved to the end of
|
||
|
the line.
|
||
|
.SH RATIONALE
|
||
|
.LP
|
||
|
The \fIread\fP utility historically has been a shell built-in. It
|
||
|
was separated off into its own utility to take advantage of
|
||
|
the richer description of functionality introduced by this volume
|
||
|
of IEEE\ Std\ 1003.1-2001.
|
||
|
.LP
|
||
|
Since \fIread\fP affects the current shell execution environment,
|
||
|
it is generally provided as a shell regular built-in. If it
|
||
|
is called in a subshell or separate utility execution environment,
|
||
|
such as one of the following:
|
||
|
.sp
|
||
|
.RS
|
||
|
.nf
|
||
|
|
||
|
\fB(read foo)
|
||
|
nohup read ...
|
||
|
find . -exec read ... \\;
|
||
|
\fP
|
||
|
.fi
|
||
|
.RE
|
||
|
.LP
|
||
|
it does not affect the shell variables in the environment of the caller.
|
||
|
.SH FUTURE DIRECTIONS
|
||
|
.LP
|
||
|
None.
|
||
|
.SH SEE ALSO
|
||
|
.LP
|
||
|
\fIShell Command Language\fP
|
||
|
.SH COPYRIGHT
|
||
|
Portions of this text are reprinted and reproduced in electronic form
|
||
|
from IEEE Std 1003.1, 2003 Edition, Standard for Information Technology
|
||
|
-- Portable Operating System Interface (POSIX), The Open Group Base
|
||
|
Specifications Issue 6, Copyright (C) 2001-2003 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 .
|