[comp.unix.wizards] job control Bourne Shell.

lcc.richard@LOCUS.UCLA.EDU (Richard Mathews) (01/14/87)

I believe that someone said about a year and a half ago that they had a
version of the System V Bourne Shell with lots of bug fixes and with BSD
job control added.  Where can I get this?  Do I need anything besides a
System V license?  I intend to use it for private use, but would be
interested in knowing about its availability for commercial use.

As an aside, I remember that one of the bug fixes which was included in
this shell was the one that Brian Horn and I posted some time back.  I now
have a fix for the fix.  The original fix allowed the "<> file" syntax to
work (open for read/write).  The new fix prevents "rsh" (restricted shell)
users from using this form of redirection (since they can't use "> file"
either).  The diff from the original System V version of service.c to our
current version is:

*** 73,78
					failed(ion, badfile);
				else
					fd = dup(fd);
			}
			else if ((iof & IOPUT) == 0)
				fd = chkopen(ion);

--- 74,85 -----
					failed(ion, badfile);
				else
					fd = dup(fd);
+			}
+			else if (iof & IORDW) {
+				if (flags & rshflg)
+					failed(ion, restricted);
+				else if ((fd = open(ion, 2)) < 0)
+					failed(ion, badopen);
			}
			else if ((iof & IOPUT) == 0)
				fd = chkopen(ion);

Richard M. Mathews
Locus Computing Corporation		       lcc.richard@LOCUS.UCLA.EDU
					       lcc.richard@UCLA-CS
				 {ihnp4,trwrb}!lcc!richard
       {randvax,sdcrdcf,ucbvax,trwspp}!ucla-cs!lcc!richard

gwyn@brl-smoke.ARPA (Doug Gwyn ) (01/17/87)

In article <2338@brl-adm.ARPA> lcc.richard@LOCUS.UCLA.EDU (Richard Mathews) writes:
>I believe that someone said about a year and a half ago that they had a
>version of the System V Bourne Shell with lots of bug fixes and with BSD
>job control added.  Where can I get this?  Do I need anything besides a
>System V license?  I intend to use it for private use, but would be
>interested in knowing about its availability for commercial use.

BRL distributes a version of the SVR2 Bourne shell that is conditionally
compiled (following instructions in its Makefile) to turn on or off a
number of significant enhancements, including:

	compilation under a variety of C environments, including
	System V, 4BSD, and BRL's UNIX System V emulation for 4.nBSD

	use as native 4BSD shell (different selection of built-ins
	and "echo" semantics)

	pathname (if any) of system profile

	shell accounting logging

	BRL or Georgia Tech local features

	8th Edition UNIX "builtin" and "whatis" builtins

	avoidance of Bourne's SIGSEGV memory management technique

	echo -n option (added to System V environments)

	8th Edition UNIX echo -e option (for 4BSD environments)

	$ENV set to per-invocation startup file (similar to .cshrc) name

	flag to protect against accidental logout on EOF

	$HISTORY set to name of command history file

	EMACS-style command-line editing (useful with history)

	reporting of child process resource usage

	4BSD csh-style job control (requires wait3() or equivalent)

	amount of automatic nicing of background processes

	^ symbol optionally taken as synonym for |

	$PPID (shell's parent process ID)

	optional support for "rsh" (restricted shell) features

	avoid attempting to exec directories etc.

	track symbolic links used to "cd" rather than real path
	("pwd" is built-in, so this comes in very handy in practice)

	support for ~ and ~user substitution

	automatic timeout if left idle too long after prompt

	Pyramid-style "att" and "ucb" universe-switching builtins

Things that I wish we had included but haven't done yet:

	8th Edition UNIX exporting of functions via the environment

	SVR3 "getopts" built-in

The enhancements and bug fixes were provided by a number of people,
including but not limited to the following:

	Ron Natalie, Doug Kingston, and Doug Gwyn of BRL
	Arnold Robbins of Emory University and Georgia Tech
	Guy Harris of Sun Microsystems Inc.

Sources for this edition of the SVR2 shell are normally shipped as
part of the BRL UNIX System V emulation for 4.nBSD; I believe Arnold
Robbins also distributes a similar shell.  The only requirement is a
valid SVR2 (or later) source license (and a magtape).  There's no
restriction on commercial use other than that imposed by the SVR2
license.  Contact me for further information.

P.S.  There have been numerous improvements to the version that went
out on earlier distributions of the BRL UNIX System V emulation.  In
particular the job control code and manual page were overhauled.