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 [+-abCefhkmnopstuvx]	 [+-o option]... [+-A name] [arg...]

       unset [-f] name...

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

       **export	[-p]

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 sta-
		tus.

       -f	Disables file name generation.

       -h	Locates	 and  remembers	function commands as functions are de-
		fined. Function	commands are normally located when  the	 func-
		tion is	executed.

       -k	All keyword arguments are placed in the	environment for	a com-
		mand, 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 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	unset.

       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 parenthe-
		       ses.

       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 *'.

       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. 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	 back-
		ground 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 environ-
		ment 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 stettings to standard output in a
		format that is suitable	for reinput to the shell  as  commands
		that achieve the same option settings.

       -o optionThe 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	prior-
				ity. 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 truncat-
				ing 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  given  then  the	 names and values of all variables are
       printed on the standard output.

       The variables given 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.	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 meaning 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.

       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  re-
	   set	to  the	unset state if a value is assigned to the variable be-
	   tween the time the state was	saved and the time at which the	 saved
	   output is reinput to	the shell.

       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
	   after 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.10			  13 Jul 2004				set(1)

NAME | SYNOPSIS | DESCRIPTION | EXAMPLES | ATTRIBUTES | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=set&sektion=1&manpath=SunOS+5.10>

home | help