gwyn@BRL.ARPA (08/30/87)
BRL SVR2 Bourne shell description BRL will supply, as part of its UNIX System V emulation for 4.nBSD (or otherwise upon special arrangement), only to sites that supply a copy of the identification pages of their AT&T UNIX System V Release 2.0 or later source license in addition to a 1/2" magtape with reusable mailer, a substantially overhauled SVR2 Bourne shell that differs from the original version distributed with UNIX System V Release 2.0 in the following ways: If the super-user's $PS1 does not end in "# ", it is appended as a safety reminder. $IFS is no longer inherited from the environment. There are a couple of other attempts to improve shell script security also. The hash -i option suppresses the error message that is normally generated when hashing commands not found in the search path. Many bugs have been fixed (but not all -- for example, function arguments still overwrite the shell's argument list, and quoting is not handled quite right). I/O redirection via <> (read+write) now works. A null field at the end of $PATH now works properly. Memory management is no longer done via SIGSEGV trapping (unless you choose to configure the shell that way -- but why would you?), so signal 11 can now be trapped. The shell (unless you otherwise configure it!) no longer attempts to execute directories and other silly file types. A variety of options can be configured by editing the Makefile. The BRL SVR2 Bourne shell sources can serve for building shells for vanilla System V, for 4.nBSD /bin/sh, for dual-universe environments, in short to replace virtually any Bourne shell. The name of the system profile (normally /etc/profile) is now specified in the Makefile. The "newgrp" or "login" command is built in depending on the environment the shell is configured to operate in. The following System V features are now optional: $SHACCT shell accounting log file obsolete ^ synonym for | pipe symbol set -r, restricted shell "rsh" background processes automatically "niced" The following options can be configured into any version: 7th Edition UNIX echo -n option (standard for 4BSD) to suppress the trailing new-line 8th Edition UNIX echo -e option (no-op for System V) to enable \ escape interpretation 8th Edition UNIX "builtin" and "whatis" commands set -E to protect against accidental EOT logout set -H to enable command history, EMACS-like editing, and TENEX-like name completion; includes $HISTFILE command history log file $ENV per-interactive-shell startup command file $PPID parent PID, non-modifiable $TIMEOUT to time out shell on lack of interactive input ~user name substitution On systems having proper support, the following are configurable: Pyramid's "att", "ucb", and "universe" commands and $UNIVERSE variable ulimit -cdmt options for additional 4BSD resource limits set -I to print resource usage at process termination set -J to enable job control; set -N for immediate job termination notification rather than at PS1; includes "jobs", "fg", and "bg" commands, etc. "pwd" compensation for symbolic links to directories By exploiting many of the above features in combination, one can set up a really slick working environment. Several users of the "Tenex Cshell" have switched to this one and claim to prefer it. The manual entry has been overhauled and made more compatible with the SVR3 description. Descriptions of the new features were added, of course. The sources have been made much more portable; many machine- dependent assumptions have been removed. The BRL SVR2 Bourne shell is known to have worked successfully on the following systems: DEC VAX running 4.2BSD DEC VAX running 4.3BSD Gould PowerNode series running UTX-32 2.0 Alliant FX/8 (presumably also FX/1) running Concentrix 2.0 BRL UNIX System V emulation for VAX, Gould, and Alliant Silicon Graphics Iris series 3000 running GL2-W3.5 Cray X-MP/48 running UNICOS 2.1 Cray-2 running UNICOS 2.1 Porting to another system should be simply a matter of editing the Makefile appropriately, following instructions contained there. The shell sources include a public-domain implementation of the POSIX directory access routines for systems that don't already have them. The SVR3 "getopts" command is NOT supplied, although I would like to. If someone who does not have access to SVR3 sources can figure out an implementation and send it to me, I will gladly include it in a future release. (I would also like fixes for the quoting problems and 7-bit ASCII orientation, but that's probably too much work.) The current state of the BRL SVR2 Bourne shell is the result of considerable effort by many people around the world. The following are people I know of who have contributed: David Barto, Wes Chalfant, Ed Frankenberry, Doug Gwyn, Guy Harris, Brian Horn, Doug Kingston, Richard Mathews, Bob Miles, der Mouse, Ron Natalie, Scott Rautmann, Arnold Robbins, Lou Salkind, Donn Seeley, Amos Shapir. Various anonymous bug fixes and improvements from several vendors have also been incorporated, and some of the features were inspired by other shells. Thanks are also due to BRL guinea pigs who put up with trial versions that "almost" worked right. People who have already requested either the shell or the whole UNIX System V emulation package from me should receive their copy in the mail soon. Thanks for waiting patiently until the shell was revamped! Others can send their requests to: Douglas A. Gwyn U.S. Army Ballistic Research Laboratory SLCBR-VL-V Aberdeen Proving Ground, MD 21005-5066 (301)278-6647 Gwyn@BRL.MIL Don't forget to include the license and remailable magtape. (Send no money! I cannot accept it, even to pay postage.) Unfortunately, requests from outside the United States must be routed via the appropriate U.S. Embassy. (Alternatively, have somebody in the U.S., who is willing to take responsibility for complying with the relevant U.S. laws, act as your agent.) Please do not ask for a manual entry or sources to be sent over the net. I also do not have time to respond to detailed questions; the above description will have to suffice until you get your copy of the shell.