diff options
author | jilles <jilles@FreeBSD.org> | 2013-05-03 15:28:31 +0000 |
---|---|---|
committer | jilles <jilles@FreeBSD.org> | 2013-05-03 15:28:31 +0000 |
commit | 3f27c6916965a63b42f0a8f1dc9c95cd75faa4fa (patch) | |
tree | 4595e56573a1621805ce3c9493340d4c3a9ce61c /bin/sh/sh.1 | |
parent | cc9f388839c014f29ebe7586e40ad11d1683c173 (diff) | |
download | FreeBSD-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.1 | 11 |
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 |