scripting

Björn Lindberg d95-bli at nada.kth.se
Wed Jul 14 10:10:01 PDT 2004


Bennett Todd <bet at rahul.net> writes:

> 2004-07-14T10:39:13 Björn Lindberg:
> > ksh was first created in 1983, but the most popular version was
> > ksh88, released in 1988. It was proprietary, but widely installed
> > because most UNIX systems bought it to include as their POSIX
> > shell.
> 
> I had relatively little exposure to System V based Unixes. I mostly
> worked with BSD-derived Unixes until Linux came around. So I never
> really got any exposure to ksh, when I moved beyond classic Bourne
> Shell it was to bash.
> 
> > POSIX 1003.2 was finalized in 1992, but as far as I know bash was
> > not created until later.
> 
> The configure script in the bash-1.14.7 tar.gz from ftp.gnu.org is
> from October 31, 1991. As I recall things, bash was being very
> actively hacked to track the standard as it developed; stuff that
> the bash maintainers grudgingly agreed to support but disapproved of
> was conditional under POSIXLY_CORRECT. There was a pretty good
> stretch when bash was the only fully POSIX-compliant shell. While
> some of the enhancements over and above /bin/sh were derived from
> the then version of ksh, either they weren't adopted unchanged, or
> else other things changed that ksh took a while to catch up to (I
> don't know which).

This is sort of what I mean; bash was developed during and after the
POSIX standardization took place, and was intended to follow the
specification. Thus, it is my impression that bash did not influence
the standardization process much , but rather just following it. ksh
-- in contrast -- and in particular the wide-spread ksh88 version, was
developed before the POSIX effort, and influencing the standards work
to a much greater degree. It seems to me that all modern shells today
(meaning those based on the Bourne shell of course; so tcsh, rc, es,
etc. excluded) derive in their functionality and syntax from ksh,
which in turn laid the basis for the POSIX standard. At least this is
my impression from what I have read, I might be mistaken. I appreciate
your input, since you were there when it happened, so to speak. :-)

> > I am not able to find information on when bash was first available
> > (it being open source, this may very well have been a gradual
> > introduction), but bash 2.0 was released December 1996 according
> > to a changelog file in the sources.
> 
> Bash was available long before 2.0, it was one of the earlier major
> GNU programs --- understandably, it's nearly as fundamental as an
> emacs and a C compiler.

I see. But when would you estimate that it was usable, and when was it
starting to become POSIX-compliant? Looking at the release numbers and
the release dates, it seems that 2.0 was a milestone of sorts. Is that
correct?

> > Bash didn't become important until Linux started being widely
> > adopted, [...]
> 
> "become important" is hard to quantify. Long before Linux came
> around, many of us enjoyed working on other Unix systems, and for at
> least some of us, the standard working pattern was to put all the
> GNU stuff into /usr/local/bin and put that at the front of our PATH,
> giving us the finger-feel of a GNU system wherever we were.

Ah, interesting. Why was that? Was the GNU tools percieved as
superior, or was it based on ideological reasons?

> > [...] so I have a hard time imagining that it had any influence on
> > the POSIX process at the time.
> 
> I don't know how influential bash was on the POSIX process, but even
> if little feedback made it back from bash to POSIX, bash was still
> tracking the standard pretty tightly as it developed.

Ok, this agrees with my impressions too, apart from that I didn't know
that bash was following POSIX so closely.

> > 	The 1988 version of ksh [...] was a source document for the
> > 	IEEE POSIX and ISO shell standards.
> 
> That's certainly the case, some POSIX extensions over classic
> /bin/sh behavior were inspired by similar ones in ksh.
> 
> Really, it's a shame that ksh was locked up, proprietary closed
> source, for those many years when bash came of age. The two shells
> are so similar.

I agree. I think that ksh would be more dominant, and better, if it
had been open source from the beginning.

> But my real favourite shell is so different from both that it dodges
> the whole issue. rc rules!

I have been meaning to look into both rc and es, but never found time
for it. For what do you prefer rc, ie for scripting or interactive
use, and why? What are the most important features of rc compared to
ksh93 or bash?


Björn



More information about the lfs-chat mailing list