On Enhancing the Bourne Shell

Arnold Robbins arnold at gatech.CSNET
Mon Nov 18 12:09:25 AEST 1985


Since posting the announcement that I was going back to work on the Bourne
shell, I've been getting some mail, most of which is repetitive. To
forestall any more, let me clarify what I am and am not going to do, and
why.

The previous enhancements that I made were almost all *additions* to the
code. The history mechanism was "slipped in underneath" so to speak, most of
the shell doesn't even know that history processing is going on. The same
is true of the rest of the additions I am planning on making.

Many have asked me why I won't add aliases or arrays of shell variables.
The answer is that to do so is HARD. It would require *rewriting* major
portions of the code, and I don't trust myself to integrate any such
rewriting completely, without bugs.  Also, the shell is a "pet project"
of mine. My superiors tolerate my working on it, as long as I do the rest
of my work in a timely fashion. There is only so much that I can reasonably
consider doing, or else nothing will get done. Finally, the System V Release 2
shell already has shell functions, which are more powerful than aliases.
People who only have BSD source have my sympathies, but there is only so
much I can do.

Many other people have asked for command line screen editing features.
I already mentioned in my previous note that this would be provided.
The code that implements it was ripped out of the tcsh, and modified to
work with my mods to the shell. The person who did this sent me the code,
and I will include it (although it may take some time to make sure it
works under System V).

Now, a note on the BSD shell. If you don't have System V Release 2
source, you have my sympathy and pity. I will make as many of my mods to
the BSD shell as are feasible, but I will not add things that are in the
S5 shell, like functions or pwd as a builtin. Dealing with the original,
algol-68-via-macros code is a real, um, bear, and I almost considered
not doing it this time. Be assured that the S5 shell will work under 4.2 BSD,
and will provide job control.

On a more upbeat note, if anyone else out there does want to try to add
aliases, or arrays of shell variables to the Bourne shell, I will be more
than happy to include that code in what I send out. I will willingly act
as a "clearinghouse" for Bourne shell enhnacements. If you want to do
something like this, or have done it already, let me know, so that I can
coordinate any distributed efforts (we don't need two people doing aliasing,
and no one doing arrays, for instance).

In sum, I have been very pleased by the niche my shell has found out there,
and am glad to do more. But there is only so much I can reasonably do.
If other people want to volunteer to do things that I cannot, please do.
I will be happy to include it, and we can make it a net-wide effort.

Sh lovers of the world unite! Nuke the csh! :-)
-- 
Arnold Robbins
CSNET:	arnold at gatech	ARPA:	arnold%gatech.csnet at csnet-relay.arpa
UUCP:	{ akgua, allegra, hplabs, ihnp4, seismo, ut-sally }!gatech!arnold

Real Unix hackers disdain wimpy languages like C and AWK in favor of /bin/sh.



More information about the Comp.unix mailing list