Un-exporting an Exported Variable in Bash in Linux
Posted on In QAHow to un-export an imported variable in Bash on Linux? For example, first, I export a variable MODE
like
export MODE=debug
but I want to unexport the MODE (not turn to be `””`, should be truly non-defined).
You can
export -n MODE
or
unset MODE
For your reference (from the [`bash` manual](https://www.systutorials.com/docs/linux/man/1-bash/)):
export [-fn] [name[=word]] ...
export -p
The supplied names are marked for automatic export to the en‐
vironment of subsequently executed commands. If the -f op‐
tion is given, the names refer to functions. If no names are
given, or if the -p option is supplied, a list of names of
all exported variables is printed. The -n option causes the
export property to be removed from each name. If a variable
name is followed by =word, the value of the variable is set
to word. export returns an exit status of 0 unless an in‐
valid option is encountered, one of the names is not a valid
shell variable name, or -f is supplied with a name that is
not a function.
unset [-fv] [-n] [name ...]
For each name, remove the corresponding variable or
function. If the -v option is given, each name refers
to a shell variable, and that variable is removed.
Read-only variables may not be unset. If -f is speci‐
fied, each name refers to a shell function, and the
function definition is removed. If the -n option is
supplied, and name is a variable with the nameref
attribute, name will be unset rather than the variable
it references. -n has no effect if the -f option is
supplied. If no options are supplied, each name
refers to a variable; if there is no variable by that
name, any function with that name is unset. Each
unset variable or function is removed from the envi‐
ronment passed to subsequent commands. If any of
COMP_WORDBREAKS, RANDOM, SECONDS, LINENO, HISTCMD,
FUNCNAME, GROUPS, or DIRSTACK are unset, they lose
their special properties, even if they are subse‐
quently reset. The exit status is true unless a name
is readonly.
export -n MODE
See
help export
export: export [-fn] [name[=value] …] or export -p
Set export attribute for shell variables.
Marks each NAME for automatic export to the environment of subsequently
executed commands. If VALUE is supplied, assign VALUE before exporting.
Options:
-f refer to shell functions
-n remove the export property from each NAME
-p display a list of all exported variables and functions
An argument of `–‘ disables further option processing.
Exit Status:
Returns success unless an invalid option is given or NAME is invalid.