NAME
unset — unset
values and attributes of variables and functions
SYNOPSIS
unset |
[-fv] name
... |
DESCRIPTION
Each variable or function specified by name shall be
unset. If −v is specified, name refers to a
variable name and the shell shall unset it and
remove it from the environment. Read-only variables cannot be
unset.
If −f is specified, name refers to a function and the shell
shall unset the function definition.
If neither −f nor −v is specified, name refers to a
variable; if a variable by that name does not exist, it is unspecified
whether a function by that name, if any, shall be
unset.
Unsetting a variable or function that was not previously set shall not be considered an error and shall not cause the shell to abort.
The unset special built-in shall conform
to the utility argument syntax guidelines described in 2.10.2.
EXIT STATUS
RATIONALE
Note that VARIABLE =
is not equivalent to an unset of
VARIABLE; in the example, VARIABLE is
set to "". Also, the ‘‘variables’’
that can be unset should not be misinterpreted to
include the special parameters (see 3.5.2). Consideration was given to
omitting the −f option in favor of an unfunction utility, but decided
to retain existing practice. The −v option was introduced because
System V historically used one name space for both variables and functions.
When unset is used without options, System V
historically unset either a function or a variable
and there was no confusion about which one was intended. A portable
POSIX. 2 application can use unset
without an option to unset a variable, but not a
function; the −f option must be used.
Examples: Unset the VISUAL variable:
unset -v VISUAL
Unset the functions foo and bar: unset
−f foo bar
3.14 Special Built-in Utilities 261
Section 4: Execution Environment Utilities
The Execution Environment Utilities are the utilities that shall be implemented in all conforming POSIX. 2 systems.