readinput a line to the KornShell |
KornShell Built-in |
read [-prs]
[-u[d]]
[variable?prompt] [variable ...]
read without options, it reads one line from
the standard input, breaks the line into fields and assigns the fields to
each variable, in order.
To determine where to break the line into fields, read
uses the built-in variable IFS (Internal Field
Separator). Encountering any of the characters in IFS
means the end of one field and the beginning of the next.
The default value of IFS is blank, tab and newline.
In general, a single IFS character separates fields.
For example, if IFS is colon (:),
read considers the input a::b to have three
fields: a, an empty field and b; however,
if IFS contains blanks, tabs and/or escaped newlines,
read considers a sequence of multiple blanks,
tabs and/or escaped newlines to be a single field separator.
For example, a b has two fields, even though there are several
blanks between the a and b.
The nth variable in the command line is assigned the nth
field. If there are more input fields than there are variables, the
last variable is assigned all of the unassigned fields. If there are more
variables than fields, the extra variables are assigned the null string ("").
The environment variable REPLY is assigned the input
when no variables are given. The exit status of read is 0,
unless it encounters end-of-file.
When the first variable parameter has the form
it defines a prompt for input. If the shell is interactive,variable?prompt
read sends the prompt to the file descriptor
d if it is open for write and is a terminal device.
The default file descriptor for the prompt is 2.
-preceives input from a co-process. For a description of a co-process,
see sh.
-rreads input in raw mode, ignoring escape conventions. For example, it
does not interpret a final backslash (\) as a line
continuation character, but as part of the input.
-sadds input to the command history file as well as to the variables.
-u [d]reads input from the single digit file descriptor d, rather than from the standard input. The default file descriptor is 0.
provides a list of users from theIFS=';' while read name junk do echo $name done </etc/passwd
/etc/passwd file.
IFScontains a string of characters to be used as internal field separators.
PS2contains the prompt string that an interactive shell uses when it
reads a line ending with a backslash and you did not specify the
-r option, or if a here-document is not terminated
after you enter a newline.
REPLYcontains the input (including separators) if you did not specify any variables.
0Successful completion.
1Failure due to any of the following:
-u2Failure due to an invalid command line argument.
You tried to read a file descriptor that was not opened for reading.
read is a built-in command of the Bourne Shell and KornShell
on UNIX systems. The Bourne Shell does not implement parameters of the form
variable?prompt, or any options.
The -p, -s, and -u
options are extensions to the POSIX standard.