PWB shell
The PWB shell was a Unix shell.
History
The PWB shell was a modified version of the Thompson shell with additional features to increase usability for programming. It was maintained by John Mashey and various others.PWB/UNIX started with Research Unix 4th Edition in mid-October 1973, and was frequently updated over the next few years, as the PWB department tracked Research Unix changes and added a few features. The PWB shell was released in mid-1975, and remained available through Version 6 Unix-based PWB/UNIX. In Version 7 Unix, the PWB shell was superseded by the Bourne shell.
Notable features
Several features were introduced in the PWB shell that remain in many later shells. The and commands were made internal to the shell, and extended to allow ---, and and constructs were introduced, as well as to ignore interrupts or catch them to perform cleanup. Simple variables could be used, although their names were limited to one letter and some letters were reserved for special purposes, of which some are the precursors of the environment variables found in all Unix systems from Version 7 onward.For example, The variable is the ancestor of, used to avoid hard-coding pathnames. The variable is the ancestor of, which let users search for commands in their own choice of directories. Unlike most of the UNIX systems of the time, the original PWB/UNIX computer center was shared by multiple programming groups who could not change the contents of /bin or /usr/bin, but wanted to create their own sets of shared commands. In addition, the shell's command-searching was enhanced to allow shell procedures to be invoked like binary commands, i.e., if the shell found a non-binary file marked executable, it would fork another shell instance to read that file as a shell script. Thus people could type rather than. All this behavior was packaged as the function, which is the ancestor of, to allow any program to invoke commands in the same way as the shell.
The character, used previously for identifying arguments to a shell script, became the marker for dereferencing a variable, and could be used to insert a variable's value into a string in double quotes.