| • Science | • People | • Locations | • Timeline |
Among the main goals of the Bourne shell was to take advantage of two key features of Version 7 kernel:
The Bourne shell also was the first to feature the convention of using file descriptor 2 for error messages, allowing much greater programmatic control during scripting by keeping error messages separate from data.
Though primarily intended as an interactive command interpreter, it gained popularity as a scripting langauge with the publication of The UNIX Programming Environment by Brian W. Kernighan and Rob Pike. This was the first commercially published book that presented the shell as a programming language in a tutorial form.
The C shell (csh) was distributed with 4.1bsd, and took advantage of job control features of the BSD kernel. Job control is the ability to stop a program interactively and then restart it later. It was for this reason that the C shell gained popularity as a command interpreter. The C shell used a more "C like" syntax for its programming features that was incompatible with the Bourne shell and purportedly an improvement. It never caught on, and many BSD users utilized the Bourne shell for programming tasks and the C shell as their command interpreter.
The Korn shell (ksh) written much later by David Korn, was a middle road between these two shells, with syntax chiefly drawn from the Bourne shell and job control features drawn from the C shell.
Bash, also known as the Bourne-Again shell, was later developed for the GNU project and takes features from the bourne shell, csh and ksh.
| ||||
| ||||