SET(1)                          User Commands                         SET(1)
NAME
       set, unset, setenv, unsetenv, export - shell built-in functions to
       determine the characteristics for environmental variables of the
       current shell and its descendents
SYNOPSIS
   sh       set [
--aefhkntuvx [
argument]]...       
unset [
name]...       
export [
name]...   
csh       set [
var [= 
value]]       
set var [
n] = 
word       unset pattern       setenv [
VAR [
word]]       
unsetenv variable   ksh       set [+-abCefhkmnopstuvx] [+-o 
option]... [+-A 
name]
            [
arg]...       
unset [
-f] 
name...       
**export [
name [=
value]]...       
**export [
-p]   
ksh93       +set [+-abCefGhkmnoprstuvx] [+-o 
option]... [+-A 
vname]
            [
arg]...       
+unset [
-fnv] 
vname...       
++export [
-p] [
name[=
value]]...
DESCRIPTION
   sh       The 
set built-in command has the following options:       
--             Does not change any of the flags. This option is useful in
             setting 
$1 to 
-.       
-a             Marks variables which are modified or created for export.       
-e             Exits immediately if a command exits with a non-zero exit
             status.       
-f             Disables file name generation.       
-h             Locates and remembers function commands as functions are
             defined. Function commands are normally located when the
             function is executed.       
-k             All keyword arguments are placed in the environment for a
             command, not just those that precede the command name.       
-n             Reads commands but does not execute them.       
-t             Exits after reading and executing one command.       
-u             Treats unset variables as an error when substituting.       
-v             Prints shell input lines as they are read.       
-x             Prints commands and their arguments as they are executed.
       Using 
+ rather than 
- causes these flags to be turned off. These
       flags can also be used upon invocation of the shell. The current set
       of flags can be found in 
$-. The remaining 
arguments are positional
       parameters and are assigned, in order, to 
$1, 
$2, 
.... If no       
arguments are specified the values of all names are printed.
       For each 
name, 
unset removes the corresponding variable or function
       value. The variables 
PATH, 
PS1, 
PS2, 
MAILCHECK, and 
IF cannot be
       unset.
       With the 
export built-in, the specified 
names are marked for
       automatic export to the 
environment of subsequently executed
       commands. If no arguments are specified, variable names that have
       been marked for export during the current shell's execution are
       listed. Function names are 
not exported.   
csh       With no arguments, 
set displays the values of all shell variables.
       Multiword values are displayed as a parenthesized list. With the 
var       argument alone, 
set assigns an empty (null) value to the variable       
var. With arguments of the form 
var = value set assigns 
value to 
var,
       where 
value is one of:       
word                     A single word (or quoted string).       
(wordlist)                     A space-separated list of words enclosed in
                     parentheses.
       Values are command and filename expanded before being assigned. The
       form 
set var[n]=word replaces the 
n'th word in a multiword value with       
word.       
unset removes variables whose names match (filename substitution)       
pattern. All variables are removed by `
unset *'.
       With no arguments, 
setenv displays all environment variables. With
       the 
VAR argument, 
setenv sets the environment variable 
VAR  to an
       empty (null) value. (By convention, environment variables are
       normally specified upper-case names.) With both 
VAR and 
word       arguments specified, 
setenv sets 
VAR to 
word, which must be either a
       single word or a quoted string. The 
PATH variable can take multiple       
word arguments, separated by colons (see EXAMPLES). The most commonly
       used environment variables, 
USER, 
TERM, and 
PATH, are automatically
       imported to and exported from the 
csh variables 
user, 
term, and 
path.
       Use 
setenv if you need to change these variables. In addition, the
       shell sets the 
PWD environment variable from the 
csh variable 
cwd       whenever the latter changes.
       The environment variables 
LC_CTYPE, 
LC_MESSAGES, 
LC_TIME, 
LC_COLLATE,       
LC_NUMERIC, and 
LC_MONETARY take immediate effect when changed within
       the C shell. See 
environ(7) for descriptions of these environment
       variables.       
unsetenv removes 
variable from the environment. As with 
unset,
       pattern matching is not performed.   
ksh       The flags for the 
set built-in have meaning as follows:       
-A                    Array assignment. Unsets the variable 
name and assigns
                    values sequentially from the list 
arg. If 
+A is used,
                    the variable 
name is not unset first.       
-a                    All subsequent variables that are defined are
                    automatically exported.       
-b                    Causes the shell to notify the user asynchronously of
                    background job completions.       
-C                    Prevents existing files from being overwritten by the
                    shell's 
> redirection operator. The 
>| redirection
                    operator overrides this noclobber option for an
                    individual file.       
-e                    If a command has a non-zero exit status, executes the                    
ERR trap, if set, and exits. This mode is disabled while
                    reading profiles.       
-f                    Disables file name generation.       
-h                    Each command becomes a tracked alias when first
                    encountered.       
-k                    All variable assignment arguments are placed in the
                    environment for a command, not just those that precede
                    the command name.       
-m                    Background jobs run in a separate process group and a
                    line prints upon completion. The exit status of
                    background jobs is reported in a completion message. On
                    systems with job control, this flag is turned on
                    automatically for interactive shells.       
-n                    Reads commands and checks them for syntax errors, but
                    does not execute them.  Ignored for interactive shells.       
+o                    Writes the current option settings to standard output in
                    a format that is suitable for reinput to the shell as
                    commands that achieve the same option settings.       
-o option                    The 
option argument can be one of the following option
                    names:                    
allexport                                  Same as 
-a.                    
errexit                                  Same as 
-e.                    
bgnice                                  All background jobs are run at a lower
                                  priority. This is the default mode.  
emacs                                  Puts you in an 
emacs style in-line editor
                                  for command entry.                    
gmacs                                  Puts you in a 
gmacs style in-line editor
                                  for command entry.                    
ignoreeof                                  The shell does not exit on end-of-file.
                                  The command 
exit must be used.                    
keyword                                  Same as 
-k.                    
markdirs                                  All directory names resulting from file
                                  name generation have a trailing 
/                                  appended.                    
monitor                                  Same as 
-m.                    
noclobber                                  Prevents redirection operator 
> from
                                  truncating existing files. Requires the 
>|                                  operator to truncate a file when turned
                                  on. Same as 
-C.                    
noexec                                  Same as 
-n.                    
noglob                                  Same as 
-f.                    
nolog                                  Does not save function definitions in
                                  history file.                    
notify                                  Same as 
-b.                    
nounset                                  Same as 
-u.                    
privileged                                  Same as 
-p.                    
verbose                                  Same as 
-v.                    
trackall                                  Same as 
-h.                    
vi                                  Puts you in insert mode of a 
vi style in-
                                  line editor until you hit escape character                                  
033. This puts you in control mode. A
                                  return sends the line.                    
viraw                                  Each character is processed as it is typed
                                  in 
vi mode.                    
xtrace                                  Same as 
-x.
       If no option name is supplied then the current option settings are
       printed.       
-p               Disables processing of the 
$HOME/.profile file and uses the
               file 
/etc/suid_profile instead of the 
ENV file. This mode is
               on whenever the effective uid is not equal to the real uid,
               or when the effective gid is not equal to the real gid.
               Turning this off causes the effective uid and gid to be set
               to the real uid and gid.       
-s               Sorts the positional parameters lexicographically.       
-t               Exits after reading and executing one command.       
-u               Treats unset parameters as an error when substituting.       
-v               Prints shell input lines as they are read.       
-x               Prints commands and their arguments as they are executed.       
-               Turns off 
-x and 
-v flags and stops examining arguments for
               flags.       
-               Does not change any of the flags. This option is useful in
               setting 
$1 to a value beginning with 
-. If no arguments
               follow this flag then the positional parameters are unset.
       Using 
+ rather than 
- causes these flags to be turned off. These
       flags can also be used upon invocation of the shell. The current set
       of flags can be found in 
$-. Unless 
-A is specified, the remaining
       arguments are positional parameters and are assigned, in order, to 
$1       $2 .... If no arguments are specified then the names and values of
       all variables are printed on the standard output.
       The variables specified by the list of 
names are unassigned, that is,
       their values and attributes are erased. 
readonly variables cannot be
       unset. If the 
-f flag is set, then the names refer to 
function names.
       Unsetting 
ERRNO, 
LINENO, 
MAILCHECK, 
OPTARG, 
OPTIND, 
RANDOM, 
SECONDS,       
TMOUT, and 
_ removes their special meaning even if they are
       subsequently assigned.
       When using 
unset, the variables specified by the list of 
names are
       unassigned, i.e., their values and attributes are erased. 
readonly       variables cannot be unset. If the 
-f, flag is set, then the names
       refer to 
function names. Unsetting 
ERRNO, 
LINENO, 
MAILCHECK, 
OPTARG,       
OPTIND, 
RANDOM, 
SECONDS, 
TMOUT, and 
_ removes their special meaning
       even if they are subsequently assigned.
       With the 
export built-in, the specified 
names are marked for
       automatic export to the 
environment of subsequently-executed
       commands.
       When 
-p is specified, 
export writes to the standard output the names
       and values of all exported variables in the following format:
         "export %s=%s\n", 
name, 
value       if 
name is set, and:
         "export %s\n", 
name       if 
name is unset.
       The shell formats the output, including the proper use of quoting, so
       that it is suitable for reinput to the shell as commands that achieve
       the same exporting results, except for the following:
           1.     Read-only variables with values cannot be reset.
           2.     Variables that were unset at the time they were output are
                  not reset to the unset state if a value is assigned to the
                  variable between the time the state was saved and the time
                  at which the saved output is reinput to the shell.
       On this manual page, 
ksh(1) commands that are preceded by one or two       
* (asterisks) are treated specially in the following ways:
           1.     Variable assignment lists preceding the command remain in
                  effect when the command completes.
           2.     I/O redirections are processed after variable assignments.
           3.     Errors cause a script that contains them to abort.
           4.     Words, following a command preceded by 
** that are in the
                  format of a variable assignment, are expanded with the
                  same rules as a variable assignment.  This means that
                  tilde substitution is performed after the 
= sign and word
                  splitting and file name generation are not performed.   
ksh93       set sets or unsets options and positional parameters. Options that
       are specified with a 
- cause the options to be set. Options that are
       specified with a 
+ cause the option to be unset.       
set without any options or arguments displays the names and values of
       all shell variables in the order of the collation sequence in the
       current locale.  The values are quoted so that they are suitable for
       input again to the shell.
       If no arguments are specified, not even the end of options argument       
--, the positional parameters are unchanged. Otherwise, unless the 
-A       option has been specified, the positional parameters are replaced by
       the list of arguments. A first argument of 
-- is ignored when setting
       positional parameters.
       For backwards compatibility, a 
set command without any options
       specified, whose first argument is 
- turns off the 
-v and 
-x options.
       If any additional arguments are specified, they replace the
       positional parameters.
       The options for set in 
ksh93 are:       
-a                      Set the export attribute for each variable whose name
                      does not contain a . that you assign a value in the
                      current shell environment.       
-A name                      Assign the arguments sequentially to the array named
                      by 
name starting at subscript 
0 rather than to the
                      positional parameters.       
-b                      The shell writes a message to standard error as soon
                      it detects that a background job completes rather than
                      waiting until the next prompt.       
-B                      Enable 
{...} group expansion. On by default.       
-C                      Prevents existing regular files from being overwritten
                      using the > redirection operator. The 
>| redirection
                      overrides this 
noclobber option.       
-e                      A simple command that has a 
non-zero exit status
                      causes the shell to exit unless the simple command is:
                          o      contained in an 
&& or 
|| list
                          o      the command immediately following 
if,                                 
while, or 
until                          o      contained in the pipeline following 
!       -f                      Pathname expansion is disabled.       
-G                      Causes 
** by itself to also match all sub-directories
                      during pathname expansion.       
-h                      Obsolete. Causes each command whose name has the
                      syntax of an alias to become a tracked alias when it
                      is first encountered.       
-H                      Enable 
!-style history expansion similar to csh.       
-k                      This is obsolete. All arguments of the form 
name=value                      are removed and placed in the variable assignment list
                      for the command. Ordinarily, variable assignments must
                      precede command arguments.       
-m                      When enabled, the shell runs background jobs in a
                      separate process group and displays a line upon
                      completion. This mode is enabled by default for
                      interactive shells on systems that support job
                      control.       
-n                      The shell reads commands and checks for syntax errors,
                      but does not execute the command. Usually specified on
                      command invocation.       
-o [
option]
                      If option is not specified, the list of options and
                      their current settings is written to standard output.
                      When invoked with a 
+ the options are written in a
                      format that can be input again to the shell to restore
                      the settings. This option can be repeated to enable or
                      disable multiple options.
                      The value of 
option must be one of the following:                      
allexport                                     Same as 
-a.                      
bgnice                                     All background jobs are run at lower
                                     priorities.                      
braceexpand                                     Same as 
-B.                      
emacs                                     Enables or disables 
emacs editing mode.                      
errexit                                     Same as 
-e.                      
globstar                                     Equivalent to 
-G.                      
gmacs                                     Enables or disables 
gmacs. 
gmacs                                     editing mode is the same as 
emacs                                     editing mode, except for the handling
                                     of CTRL-T.                      
histexpand                                     Same as 
-H.                      
ignoreeof                                     The interactive shell does not exit on
                                     end-of-file.                      
keyword                                     Same as 
-k.                      
markdirs                                     All directory names resulting from file
                                     name generation have a trailing 
/                                     appended.                      
monitor                                     Same as 
-m.                      
multiline                                     Use multiple lines when editing lines
                                     that are longer than the window width.                      
noclobber                                     Same as 
-C.                      
noexec                                     Same as 
-n.                      
noglob                                     Same as 
-f.                      
nolog                                     This has no effect. It is provided for
                                     backward compatibility.                      
notify                                     Same as 
-b.                      
nounset                                     Same as 
-u.                      
pipefail                                     A pipeline does not complete until all
                                     components of the pipeline have
                                     completed, and the exit status of the
                                     pipeline is the value of the last
                                     command to exit with 
non-zero exit
                                     status, or is 
zero if all commands
                                     return zero exit status.                      
privileged                                     Same as 
-p.                      
showme                                     Simple commands preceded by a ; are
                                     traced as if 
-x were enabled but not
                                     executed.                      
trackall                                     Same as 
-h.                      
verbose                                     Same as 
-v.                      
vi                                     Enables or disables 
vi editing mode.                      
viraw                                     Does not use canonical input mode when
                                     using vi edit mode                      
xtrace                                     Same as 
-x.       
-p                      Privileged mode. Disabling 
-p sets the effective user
                      id to the real user id, and the effective group id to
                      the real group id. Enabling 
-p restores the effective
                      user and group ids to their values when the shell was
                      invoked.  The 
-p option is on whenever the real and
                      effective user id is not equal or the real and
                      effective group id is not equal. User profiles are not
                      processed when 
-p is enabled.       
-r                      Restricted. Enables restricted shell. This option
                      cannot be unset once enabled.       
-s                      Sort the positional parameters       
-t                      Obsolete. The shell reads one command and then exits.       
-u                      If enabled, the shell displays an error message when
                      it tries to expand a variable that is unset.       
-v                      Verbose. The shell displays its input onto standard
                      error as it reads it.       
-x                      Execution trace. The shell displays each command after
                      all expansion and before execution preceded by the
                      expanded value of the 
PS4 parameter.
       The following exit values are returned by 
set in 
ksh93:       
0             Successful completion.       
>0             An error occurred.
       For each name specified, 
unset unsets the variable, or function if 
-f       is specified, from the current shell execution environment. Read-only
       variables cannot be unset.
       The options for 
unset in 
ksh93 are:       
-f             Where 
name refers to a function name, the shell unsets the
             function definition.       
-n             If 
name refers to variable that is a reference, the variable             
name is unset rather than the variable it references.
             Otherwise, this option is equivalent to the 
-v option.       
-v             Where 
name refers to a variable name, the shell unsets it and
             removes it from the environment. This is the default behavior.
       The following exit values are returned by 
unset in 
ksh93:       
0             Successful completion. All names were successfully unset.       
>0             An error occurred, or one or more 
name operands could not be
             unset       
export sets the export attribute on each of the variables specified
       by name which causes them to be in the environment of subsequently
       executed commands. If 
=value is specified, the variable 
name is set
       to 
value.
       If no 
name is specified, the names and values of all exported
       variables are written to standard output.       
export is built-in to the shell as a declaration command so that
       field splitting and pathname expansion are not performed on the
       arguments. Tilde expansion occurs on value.
       The options for 
export in 
ksh93 are:       
-p             Causes the output to be in the form of 
export commands that can
             be used as input to the shell to recreate the current exports.
       The following exit values are returned by 
export in 
ksh93:       
0             Successful completion.       
>0             An error occurred.
       On this manual page, 
ksh93(1) commands that are preceded by one or
       two 
+ are treated specially in the following ways:
           1.     Variable assignment lists preceding the command remain in
                  effect when the command completes.
           2.     I/O redirections are processed after variable assignments.
           3.     Errors cause a script that contains them to abort.
           4.     They are not valid function names.
           5.     Words, following a command preceded by 
++ that are in the
                  format of a variable assignment, are expanded with the
                  same rules as a variable assignment.  This means that
                  tilde substitution is performed after the 
= sign and field
                  splitting and file name generation are not performed.
EXAMPLES
   csh       The following example sets the 
PATH variable to search for files in
       the 
/bin, 
/usr/bin, 
/usr/sbin, and 
/usr/ucb/bin directories, in that
       order:
         setenv PATH "/bin:/usr/bin:/usr/sbin:usr/ucb/bin"
SEE ALSO
       csh(1), 
ksh(1), 
ksh93(1), 
read(1), 
sh(1), 
typeset(1), 
attributes(7),       
environ(7)                              November 20, 2007                       SET(1)