Footnotes

*Note that if your erase character is a `#', you will have to precede the `#' with a `\'. The fact that the `#' character is the old (pre-CRT) standard erase character means that it seldom appears in a file name, and allows this convention to be used for scratch files. If you are using a CRT, your erase character should be a ^H, as we demonstrated in section 1.1 how this could be set up.

*On some older Unix systems the DEL or RUBOUT key has the same effect. "stty all" will tell you the INTR key value.

**  Another directory that might interest you is /usr/new, which contains many useful user-contributed programs provided with Berkeley Unix.

**The space between the `!' and the word `now' is critical here, as `!now' would be an invocation of the history mechanism, and have a totally different effect.

*** A command of the form

          command >&! file
exists, and is used when noclobber is set and file already exists.

** If noclobber is set, then an error will result if file does not exist, otherwise the shell will create file if it doesn't exist. A form

          command >>! file
makes it not be an error for file to not exist when noclobber is set.

**The following two formats are not currently acceptable to the shell:

if ( expression )		# Won't work!
then
	command
	...
endif

and

if ( expression ) then command endif		# Won't work

*** It is also important to note that the current implementation of the shell limits the number of `:' modifiers on a `$' substitution to 1. Thus

% echo $i $i:h:t
/a/b/c /a/b:t
%

does not do what one would expect.

*Command expansion also occurs in input redirected with `<<' and within `"' quotations. Refer to the shell manual section for full details.