Xref: utzoo comp.unix.questions:32032 comp.unix.shell:2365 Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!wuarchive!uunet!auspex!guy From: guy@auspex.auspex.com (Guy Harris) Newsgroups: comp.unix.questions,comp.unix.shell Subject: Re: Help bourne shell problem on sun and bsd Keywords: builtin, redirection, loop, bourne shell Message-ID: <8279@auspex.auspex.com> Date: 8 Jun 91 18:07:29 GMT References: <3089@cod.NOSC.MIL> <1991Jun7.004435.16257@odin.corp.sgi.com> Followup-To: comp.unix.questions Distribution: usa Organization: Auspex Systems, Santa Clara Lines: 47 > From The UNIX Programming Environment, Kernighan & Pike, pp. 159-160: > -------------------------------- > > " read can only read from the standard input; it can't even > be redirected. None of the shell built-in commands (as opposed > to the control flow primitives like for ) can be redirected > with > or < : Old versions of the Bourne shell were less friendly towards redirecting the I/O of built-in commands than later versions; perhaps K&P are describing the old V7 version (the BSD version is pretty much the old V7 version). > "This might be described as a bug in the shell, but it is a > fact of life. Maybe it was a "fact of life" at the time K&P wrote that sentence - or, at least a "fact of life" on the flavor of UNIX they were using at the time they wrote that sentence - but it's most definitely *not* a "fact of life" on System V Release 3.x, or systems with System V Release 3.x-derived Bourne shells, such as SunOS 4.x (nor, I suspect, on systems with System V Release 2.x-derived Bourne shells, such as SunOS 3.x). I don't remember whether it was a "fact of life" on System V Release 2 or not; however, since "echo" has been a Bourne shell builtin in S5 since at least S5R2's Bourne shell, and since "echo"s standard output is often redirected, I suspect it wasn't a "fact of life" there. Perhaps it even works in Version 8's shell.... >So, in any environment "*Any* environment"? That's a pretty sweeping claim, and such claims are dangerous to make. Have you actually used *every* UNIX environment other than SunOS? In particular, SGI's environment includes an S5-based shell; did you try the example on an SGI machine? If so, and if it didn't work, is the version of IRIX you used based on S5R2 or S5R3 or some earlier version of S5? > (with the dubious exception of Sun's), "*Dubious* exception"? What's "dubious" about something as useful as being able to redirect the I/O of shell builtins? Surely not that it goes against the now-out-of-date claim in that version of K&P that it's a "fact of life" that you can't redirect the I/O of shell builtins?