summaryrefslogtreecommitdiffstats
path: root/bin/sh/sh.1
diff options
context:
space:
mode:
authorjilles <jilles@FreeBSD.org>2013-05-03 15:28:31 +0000
committerjilles <jilles@FreeBSD.org>2013-05-03 15:28:31 +0000
commit3f27c6916965a63b42f0a8f1dc9c95cd75faa4fa (patch)
tree4595e56573a1621805ce3c9493340d4c3a9ce61c /bin/sh/sh.1
parentcc9f388839c014f29ebe7586e40ad11d1683c173 (diff)
downloadFreeBSD-src-3f27c6916965a63b42f0a8f1dc9c95cd75faa4fa.zip
FreeBSD-src-3f27c6916965a63b42f0a8f1dc9c95cd75faa4fa.tar.gz
sh: Improve error handling in read builtin:
* If read -t times out, return status as if interrupted by SIGALRM (formerly 1). * If a trapped signal interrupts read, return status 128+sig (formerly 1). * If [EINTR] occurs but there is no trap, retry the read (for example because of a SIGWINCH in interactive mode). * If a read error occurs, write an error message and return status 2. As before, a variable assignment error returns 2 and discards the remaining data read.
Diffstat (limited to 'bin/sh/sh.1')
-rw-r--r--bin/sh/sh.111
1 files changed, 9 insertions, 2 deletions
diff --git a/bin/sh/sh.1 b/bin/sh/sh.1
index 9e74a85..2d99b1b 100644
--- a/bin/sh/sh.1
+++ b/bin/sh/sh.1
@@ -32,7 +32,7 @@
.\" from: @(#)sh.1 8.6 (Berkeley) 5/4/95
.\" $FreeBSD$
.\"
-.Dd April 21, 2013
+.Dd May 3, 2013
.Dt SH 1
.Os
.Sh NAME
@@ -2372,7 +2372,9 @@ option is specified and the
elapses before a complete line of input is supplied,
the
.Ic read
-command will return an exit status of 1 without assigning any values.
+command will return an exit status as if terminated by
+.Dv SIGALRM
+without assigning any values.
The
.Ar timeout
value may optionally be followed by one of
@@ -2388,6 +2390,11 @@ is assumed.
The
.Fl e
option exists only for backward compatibility with older scripts.
+.Pp
+The exit status is 0 on success, 1 on end of file,
+between 2 and 128 if an error occurs
+and greater than 128 if a trapped signal interrupts
+.Ic read .
.It Ic readonly Oo Fl p Oc Op Ar name ...
Each specified
.Ar name
OpenPOWER on IntegriCloud