SET(1CSH) COMMAND REFERENCE SET(1CSH)
NAME
set, unset - set and unset shell variables (csh built-in)
SYNOPSIS
set [ expression... ]
unset pattern
DESCRIPTION
The set command is used to set and change the values of
csh(1csh) variables. Shell variables can either be single
words or vectors (arrays) of words. If no arguments are
given, the names and values of all shell variables are
printed, with vectors surrounded by parentheses. The
expression arguments may have the following forms:
name The named variable is set to the null string.
name=word The named variable is set to the word given.
The word is subject to substitutions, so
special characters must be escaped or quoted.
name[index]=word
The index'th component of the vector name is
set to the value of word. The component must
already exist.
name=(wordlist)
The named vector is set to the list of values
in the wordlist.
In all cases, variable expansion is done before any
assignment, so the command sequence
set x=hello
set x=goodbye y=(you say $x)
will set the variable x to ``goodbye'' and the vector y to
``( you say hello )'', not ``( you say goodbye )''.
The unset command is used to delete variables that match the
given pattern. The command unset * unsets all variables.
The following variables have special meaning to the shell.
Of these, argv, cwd, home, path, prompt, shell and status
are always set by the shell. Except for cwd and status this
setting occurs only at initialization; these variables will
not then be modified unless this is done explicitly by you,
the user.
Printed 10/17/86 1
SET(1CSH) COMMAND REFERENCE SET(1CSH)
Though shell variables are not environment variables (see
setenv(1csh)), the variables path, and cdpath, are imported
by the shell, and the values of home, term, user, path, and
cdpath are exported to the environment. The shell variable
path and the environment variable PATH are always maintained
together, whereas cdpath and CDPATH are maintained together
but the values may be changed (see cd(1sh) and cd(1csh) for
more information).
Following is a description of variables which affect built-
in commands:
argv Set to the arguments to the shell, it is from
this variable that positional parameters are
substituted; for example, $1 is replaced by
$argv[1], and so forth.
cdpath Gives a list of alternate directories
searched to find subdirectories in chdir
commands. This variable is maintained along
with the CDPATH environment variable.
complete When set, this variable enables command
completion in interactive shells.
cwd The full pathname of the current directory.
See CAVEATS.
dirname Set to the default directory to change to
when the argument to cd(1csh) or pushd(1csh)
is not found in the current directory or in
the list of directories found in the cdpath
variable.
echo Set when the -x command line option is given.
Causes each command and its arguments to be
echoed just before it is executed. For non-
builtin commands all expansions occur before
echoing. Builtin commands are echoed before
command and filename substitution, since
these substitutions are then done
selectively. In all cases, redirection is
not taken into account, so the commands
set echo
cat /etc/group >& foo
will result in echoing ``cat /etc/group'' to
the original standard error, instead of into
the file ``foo''.
hardpaths When symbolic links are followed when
Printed 10/17/86 2
SET(1CSH) COMMAND REFERENCE SET(1CSH)
changing directories, the value of the
variable cwd and the values on the directory
stack may not be proper pathnames. When this
variable is set, each change of directory
causes the current directory to be expanded
to not include symbolic links. This should
only be used when accuracy is required, as it
makes directory changes much slower.
histchars Can be given a string value to change the
characters used in history substitution. The
first character of its value is used as the
history substitution character, replacing the
default character !. The second character of
its value replaces the character ^ in quick
substitutions.
history Can be given a numeric value to control the
size of the history list. Any command which
has been referenced in this many events will
not be discarded. Too large values of
history may run the shell out of memory. The
last executed command is always saved on the
history list.
home The home directory of the invoker,
initialized from the environment. The
filename expansion of the tilde (~) refers to
this variable.
ignoreeof If set, the shell ignores end-of-file from
input devices which are terminals. This
prevents shells from accidentally being
killed by <CTRL-D>'s.
list When set to nothing, this variable enables
file and command listing using the ^D
character in interactive mode. If set to
`f', filename marking is turned on. If set
to `l', filename marking is turned on and
symbolic links are specially marked.
listpathnum This modifies the output of file listing (see
the list variable) so that the number of the
path element where each of the commands is
found is printed.
mail The files where the shell checks for mail.
This is done after each command completion,
which will result in a prompt if a specified
interval has elapsed. The shell says You
have new mail if the file exists with an
Printed 10/17/86 3
SET(1CSH) COMMAND REFERENCE SET(1CSH)
access time not greater than its modify time.
If the first word of the value of mail is
numeric it specifies a different mail
checking interval, in seconds, than the
default, which is 10 minutes.
If multiple mail files are specified, then
the shell says New mail in filename when
there is mail in filename.
If this variable is not set, no checking for
mail is done.
noclobber As described in the section on Input/output,
restrictions are placed on output redirection
to insure that files are not accidentally
destroyed, and that >> redirections refer to
existing files.
noglob If set, filename expansion is inhibited.
This is most useful in shell scripts which
are not dealing with filenames, or after a
list of filenames has been obtained and
further expansions are not desirable.
nonomatch If set, it is not an error for a filename
expansion to not match any existing files;
rather the primitive pattern is returned. It
is still an error for the primitive pattern
to be malformed; for example, echo [ still
gives an error.
notify If set, the shell notifies asynchronously of
job completions. The default is to gather
present job completions just before printing
a prompt.
path Each word of the path variable specifies a
directory in which commands are to be sought
for execution. A null word specifies the
current directory. If there is no path
variable then only full pathnames will
execute. The usual search path is ., /bin,
and /usr/bin, but this may vary from system
to system. For the superuser, the default
search path is /etc, /bin, and /usr/bin. A
shell which is given neither the -c nor the
-t option will normally hash the contents of
the directories in the path variable after
reading .cshrc, and each time the path
variable is reset. If new commands are added
Printed 10/17/86 4
SET(1CSH) COMMAND REFERENCE SET(1CSH)
to these directories while the shell is
active, it may be necessary to give the
rehash or the commands may not be found.
prompt The string which is printed before each
command is read from an interactive terminal
input. If a ! appears in the string it will
be replaced by the current event number
unless a preceding \ is given. Default is %
, or # , for the superuser.
savehist is given a numeric value to control the
number of entries of the history list that
are saved in ~/.history when the user logs
out. Any command which has been referenced
in this many events will be saved. During
start up, the shell sources ~/.history into
the history list enabling history to be saved
across logins. Too large values of savehist
will slow down the shell during start up.
shell The file in which the shell resides.
status The status returned by the last command. If
it terminated abnormally, then 0200 is added
to the status. Built-in commands which fail
return exit status 1, all other built-in
commands set status 0.
time Controls automatic timing of commands and
time summary format. If the first value in
the vector is set, then any command which
takes more than this many CPU seconds will
cause a time and resource usage summary to be
printed when it terminates. If the second
value in the vector is set, that value
controls the summary format. See time(1csh)
for the summary format values and the default
format.
vbell If set to nothing, command completion errors
will be signaled by the visible bell (:vb:)
sequence from the termcap entry (see
termcap(5t)) instead of the terminal bell.
If set to anything else, the value of the
variable is printed.
verbose Set by the -v command line option, causes the
words of each command to be printed after
history substitution.
Printed 10/17/86 5
SET(1CSH) COMMAND REFERENCE SET(1CSH)
EXAMPLES
The following command line sets the value of the variable
`Here' to the current working directory, the vector `files'
to the names of the files in the current directory which
begin with the letter `t', and the fourth element of the
variable `junk' to the word ``foo''. If `junk' does not
already exist and have at least four elements, an error
message will result.
set Here="`pwd`" files=( t* ) junk[4]=foo
This example unsets the values of all single-letter
variables.
unset ?
DIAGNOSTICS
name: undefined variable.
An element of the variable name was assigned
to, but the name has never been assigned.
set: subscript out of range.
An element of a variable was assigned to, but
that element does not exist.
CAVEATS
The value of the variable cwd is not always correct,
especially when symbolic links are followed. If this
variable is required to be correct, the variable hardpaths
should be set.
When command completion or file listing are turned on,
terminal echo mode will always be turned on and the terminal
will always be set to cooked input mode. This is done to
ensure that command completion and file listing behave
properly. If you need to change these terminal
characteristics, you must turn off command completion and
file listing.
SEE ALSO
@(1csh), alias(1csh), bg(1csh), break(1csh), cd(1csh),
chdir(1csh), continue(1csh), csh(1csh), dirs(1csh),
echo(1csh), eval(1csh), exec(1csh), exit(1csh), fg(1csh),
glob(1csh), goto(1csh), hashstat(1csh), history(1csh),
jobs(1csh), kill(1csh), limit(1csh), logout(1csh),
nice(1csh), nohup(1csh), notify(1csh), onintr(1csh),
Printed 10/17/86 6
SET(1CSH) COMMAND REFERENCE SET(1CSH)
popd(1csh), pushd(1csh), rehash(1csh), repeat(1csh),
set(1sh), setenv(1csh), sh(1sh), shift(1csh), source(1csh),
stop(1csh), suspend(1csh), time(1csh), umask(1csh),
unhash(1csh), unalias(1csh), unlimit(1csh), unset(1sh),
unsetenv(1csh), wait(1csh), which(1csh).
Printed 10/17/86 7
%%index%%
na:72,111;
sy:183,186;
de:369,2098;2611,2890;5645,3103;8892,3066;12102,2989;
ex:15235,611;
di:15846,403;
ca:16249,661;
se:16910,845;17899,698;
%%index%%000000000176