uninterpreted shell lines

utzoo!decvax!ucbvax!unix-wizards utzoo!decvax!ucbvax!unix-wizards
Sun Nov 15 17:27:27 AEST 1981


>From BH at MIT-AI Sun Nov 15 16:45:16 1981
On the issue of programs not running because the shell still parses
the * and (maybe) doesn't find any files, this is perfectly okay
for the application for which I originally proposed this feature,
namely a "safe rm" which would in fact use the shell's expansion of
filenames but would ALSO look at the unexpanded version to check for
likely typing errors.  This is the main situation in which it's
really important not to have to rely on the user quoting the command,
because we are precisely worried about users who make a typing mistake,
and requiring more attention to the typing doesn't help.

For the second case I can think of where I want uninterpreted *,
namely restor (because I want it interpreted relative to the directory
on the tape, not the directory on the disk), I'm willing to quote
the *, if only restor knew what to do with it.

P.S.  I vote for putting the uninterpreted command in an environment
variable, rather than in argv, so that processes which are part of
pipes or which are spawned by programs rather than directly by user
commands can still see the command which was originally responsible
for their creation.

P.P.S.  I just added an environment variable called WHILE to both
sh and csh which is nonzero when inside the range of a while or
for or some such.  (In sh it's the actual depth in loops; in csh
it was easier to make it just 0 or 1.)  In both cases, it just
took one line of code, although in the case of sh I had to do
about three hours of hard reading to figure out where to put
the one line!  The intent is to catch people who do
	while true
	do
	rogue
	done
or the csh equivalent, to try to get around the restriction we've
imposed on the number of simulataneous games.



More information about the Comp.unix.wizards mailing list