set - Set or unset command options and positional parameters
Format
set [±abCefhiKkLmnPpstuvx-] [±o[flag]] [±Aname][parameter ...]
tcsh shell:
set [-r] set [-r] name ....
set [-r] name=word ....
set [-r] [-f|-l] name=(wordlist) ....
set name[index]=word ...
set [-r] name=word ....
set [-r] [-f|-l] name=(wordlist) ....
set name[index]=word ...
Description
Calling set without
arguments displays the names and values of all shell variables, sorted
by name, in the following format:
Variable="value"
The quoting allows the output to be reinput to the shell using the built-in command
eval. Arguments of the form
–option set each shell flag specified as an
option. Similarly, arguments of the form +option
turn off each of the shell flags specified as an option. (Contrary to what you might expect,
– means on, and
+
means off.) Note: All of the
set options except ±A, -s,
–, and –– are shell flags. Shell flags can also
be set on the sh command line at invocation.
In the tcsh shell
See the Format section to view the following forms:
- The first form of the command prints the value of all shell variables. Variables which contain
more than a single word print as a parenthesized word list.
Variables that are read-only will only be displayed by using the -r option. For forms 2, 3 and 4, if -r is specified, the value is set to read-only.
- The second form sets name to the null string.
- The third form sets name to the single word.
- The fourth form sets name to the list of words in wordlist. In all cases the value is command and file name expanded. If -f or -l is specified, set only unique words keeping their order. -f prefers the first occurrence of a word, and -l the last.
- The fifth form sets the index'th component of name to word; this component must already exist.
These arguments can be repeated to either set or make read-only multiple variables in a
single set command. However, variable expansion happens for all arguments before any setting occurs.
Also, = can be next to both name and word or separated from both by white space, but cannot be next
to only one or the other. For example:
set -r name=word and set -r name = word
are allowed, but
set -r name= word and set -r name =word
are not allowed.For more information, see tcsh: Invoke a C shell.
Options
- -a
- Sets all subsequently defined variables for export.
- -b
- Notifies you when background jobs finish running.
- -c
- Prevents the output redirection operator
>
from overwriting an existing file. Use the alternate operator>|
to force an overwrite. - -e
- Tells a noninteractive shell to execute the ERR trap and then exit. This flag is disabled when reading profiles.
- -f
- Disables path name generation.
- -h
- Makes all commands use tracked aliases. (For an explanation of tracked aliases, see the Command execution section in sh.
- -i
- Makes the shell interactive.
- -K
- Tells the shell to use Korn Shell compatible support of the ((expression)) syntax for arithmetic expressions and trap behavior within shell functions. Korn Shell behavior might conflict with UNIX standard-conforming behavior. For more details, see the let and trap command descriptions.
- -k
- Allows assignment parameters anywhere on the command line and still includes them in the environment of the command.
- -L
- Makes the shell a login shell. Setting this flag is effective only at shell invocation.
- -m
- Runs each background job in a separate process group and reports on each as they complete.
- -n
- Tells a noninteractive shell to read commands but not run them.
- -o flag
- Sets a shell flag. If you do not specify flag,
this option lists all shell flags that are currently set. flag can
be one of the following:
- allexport
- Is the same as the –a option.
- errexit
- Is the same as the –e option.
- bgnice
- Runs background jobs at a lower priority.
- emacs
- Specifies emacs- style inline editor for command entry. See shedit for information about the emacs editing mode.
- gmacs
- Specifies gmacs- style inline editor for command entry. See shedit for information about the gmacs editing mode.
- ignoreeof
- Tells the shell not to exit when an end-of-file character is entered.
- interactive
- Is the same as the –i option.
- keyword
- Is the same as the –k option.
- korn
- Is the same as the –K option.
- logical
- Specifies that cd, pwd, and the PWD variable use logical path names in directories with symbolic links. If this flag is not set, these built-ins and PWD use physical directory path names. For example, assume /usr/spool is a symbolic link to /var/spool, and that it is your current directory. If logical is not set, PWD has the value /var/spool, and cd changes the current directory to /var. If logical is set, PWD has the value /usr/spool and cd changes the current directory to /usr.
- login
- Is the same as the –L option of sh.
- markdirs
- Adds a trailing slash (
/
) to filename-generated directories. - monitor
- Is the same as the –m option.
- noclobber
- Is the same as the –C option.
- noexec
- Is the same as the –n option.
- noglob
- Is the same as the –f option.
- nolog
- Does not record function definitions in the history file.
- notify
- Is the same as the –b option.
- nounset
- Is the same as the -u option.
- pipecurrent
- Is the same as the -P option.
- privileged
- Is the same as the –p option.
- trackall
- Is the same as the –h option.
- verbose
- Is the same as the -v option.
- xtrace
- Is the same as the -x option.
- vi
- Specifies vi- style inline editor. See shedit for information about the vi editing mode.
- warnstopped
- Tells the shell to issue a warning, but not to exit, when there are stopped jobs.
- -p
- Disables the processing of $HOME/.profile for a login shell and disables the processing of the script specified by the ENV variable. If /etc/suid_profile exists, sh runs it instead of the ENV script.
- -P
- Runs the last command of a pipeline in the current shell environment.
- -s
- Sorts the positional parameters.
- -t
- Exits after reading and running one command.
- -u
- Tells the shell to issue an error message if an unset parameter is used in a substitution.
- -v
- Prints shell input lines as they are read.
- -x
- Prints commands and their arguments as they run.
Other options:
- –
- Turns off the -v and -x options. Also, parameters that follow this option do not set shell flags, but are assigned to positional parameters (see sh).
- -
- Specifies that parameters following this option do not set shell flags, but are assigned to positional parameters.
- +A name
- Assigns the parameter list specified on the command line to the
array elements of the variable name, starting
at name[
0
]. For example, the following command assigns the values "a", "b", "c" and "d" to the array elements array[0-3
]:set +A array a b c d echo ${array[*]} a b c d
- –A name
- Unsets the variable name and then assigns
the parameter list specified on the command line to the array elements
of the variable name starting at name[
0
]. For example, if the variable array contains 4 elements, the following command discards the previous values and assigns the values "x" and "y" to the array elements array[0-1
]:set -A array a y echo ${array[*]} x y
Usage notes
set is a special built-in shell command.
Localization
set uses
the following localization environment variables:
- LANG
- LC_ALL
- LC_MESSAGES
- NLSPATH
For more information, see Localization.
Exit values
0
- Successful completion.
1
- Failure due to an incorrect command-line argument.
2
- Failure resulting in a usage message, usually due to a missing argument.
Portability
Several shell flags are extensions of the POSIX standard: bgnice, ignoreeof, keyword, markdirs, monitor, noglob, nolog, privileged, and trackall are extensions of the POSIX standard, along with the shell flags ±A, ±h, ±k, ±p, ±s, and ±t.
Related information
alias, eval, export, sh, shedit, tcsh, trap, typeset