Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
set(1)				 User Commands				set(1)

NAME
       set,  unset, setenv, unsetenv, export - shell built-in functions	to de-
       termine 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 [+-aefhkmnopstuvx]  [+-o option]... [+-A name] [arg...]

       unset [-f] name...

       **export	 [ name	[=value]]...

DESCRIPTION
   sh
       The set built-in	command	has the	following options:

       --    Do	not change any of the flags; useful in setting $1 to -.

       -a    Mark variables which are modified or created for export.

       -e    Exit immediately if a command exits with a	non-zero exit status.

       -f    Disable file name generation.

       -h    Locate  and  remember  function commands as functions are defined
	     (function commands	are normally located when the function is exe-
	     cuted).

       -k    All keyword arguments are placed in the environment  for  a  com-
	     mand, not just those that precede the command name.

       -n    Read commands but do not execute them.

       -t    Exit after	reading	and executing one command.

       -u    Treat unset variables as an error when substituting.

       -v    Print shell input lines as	they are read.

       -x    Print 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
       may be found in $-. The remaining arguments are	positional  parameters
       and  are	 assigned, in order, to	$1, $2,	.... If	no arguments are given
       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 un-
       set.

       With the	export built-in, the given names are marked for	automatic  ex-
       port to the environment of subsequently executed	commands.  If no argu-
       ments are given,	variable names that have been marked for export	during
       the  current  shell's  execution	are listed. Function names are not ex-
       ported.

   csh
       With no arguments, set displays the values of all shell variables. Mul-
       tiword values are displayed as a	parenthesized list. With the var argu-
       ment 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)  pat-
       tern.  All variables are	removed	by `unset *'; this has noticeably dis-
       tasteful	side effects.

       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	 given
       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(5) for descriptions of these environment vari-
       ables.

       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.	 Unset the variable name and assign values se-
	     quentially	from the list arg. If +A is used, the variable name is
	     not unset first.

       -a    All subsequent variables that are defined are  automatically  ex-
	     ported.

       -e    If	a command has a	non-zero exit status, execute the ERR trap, if
	     set, and exit.  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 will run in a separate process group and  a  line
	     will  print  upon completion.  The	exit status of background jobs
	     is	reported in a completion message.  On systems  with  job  con-
	     trol,  this  flag	is  turned  on	automatically  for interactive
	     shells.

       -n    Read commands and check them for syntax errors, but do  not  exe-
	     cute them.	 Ignored for interactive shells.

       -o    The following 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  will 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	> from truncating existing files.  Re-
		   quire >| to truncate	a file when turned on.

	     noexec
		   Same	as -n.

	     noglob
		   Same	as -f.

	     nolog Do not save function	definitions in history file.

	     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 when-
	     ever  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    Sort the positional parameters lexicographically.

       -t    Exit after	reading	and executing one command.

       -u    Treat unset parameters as an error	when substituting.

       -v    Print shell input lines as	they are read.

       -x    Print commands and	their arguments	as they	are executed.

       -     Turns off -x and -v  flags	 and  stops  examining	arguments  for
	     flags.

       -     Do	 not  change any of the	flags; useful in setting $1 to a value
	     beginning with -. If no arguments follow this flag	then the posi-
	     tional 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  may  be found in $-. Unless -A is	specified, the remaining argu-
       ments are positional parameters and are assigned, in order,  to	$1  $2
       ....  If	 no arguments are given	then the names and values of all vari-
       ables are printed on the	standard output.

       The variables given 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.	Unset-
       ting ERRNO, LINENO, MAILCHECK, OPTARG, OPTIND, RANDOM, SECONDS,	TMOUT,
       and  _  removes their special meaning even if they are subsequently as-
       signed.

       When using unset, the variables given by	the list of  names  are	 unas-
       signed,	i.e.,  their  values and attributes are	erased.	readonly vari-
       ables 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 mean-
       ing even	if they	are subsequently assigned.

       With the	export built-in, the given names are marked for	automatic  ex-
       port to the environment of subsequently-executed	commands.

       On  this	 man  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	 vari-
	  able assignment. This	means that tilde substitution is performed af-
	  ter  the  = sign and word 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"

ATTRIBUTES
       See attributes(5) for descriptions of the following attributes:

       +------------------------------+-----------------------------+
       |       ATTRIBUTE TYPE	      |	     ATTRIBUTE VALUE	    |
       | Availability		      |SUNWcsu			    |
       +------------------------------+-----------------------------+

SEE ALSO
       csh(1), ksh(1), read(1),	sh(1), typeset(1), attributes(5), environ(5)

SunOS 5.9			  28 Apr 1997				set(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=setenv&manpath=SunOS+5.9>

home | help