Before installing gnuplot, I set the environment variable GNUPLOT_DRIVER_DIR = /home/gnuplot/build/src
. During the installation, something went wrong.
I want to remove the GNUPLOT_DRIVER_DIR
environment variable. How can I achieve it?
unset
is the command you're looking for.
unset GNUPLOT_DRIVER_DIR
Walkthrough of creating and deleting an environment variable in Bash:
Test if the DUALCASE variable exists (empty output):
env | grep DUALCASE
It does not, so create the variable and export it:
DUALCASE=1
export DUALCASE
Check if it is there:
env | grep DUALCASE
Output:
DUALCASE=1
It is there. So get rid of it:
unset DUALCASE
Check if it's still there (empty output):
env | grep DUALCASE
The DUALCASE exported environment variable is deleted.
Extra commands to help clear your local and environment variables:
Unset all local variables back to default on login:
CAN="chuck norris"
set | grep CAN
Output:
CAN='chuck norris'
env | grep CAN # Empty output
exec bash
set | grep CAN
env | grep CAN # Empty output
exec bash
command cleared all the local variables, but not environment variables.
Unset all environment variables back to default on login:
export DOGE="so wow"
env | grep DOGE
Output:
DOGE=so wow
env -i bash
env | grep DOGE # Empty output
env -i bash
command cleared all the environment variables to default on login.
echo $VARIABLE
is better than env | grep VARIABLE
, it's lighter as it doesn't need to print all variables and then send its output to another (grep) process. Plus, env | VARIABLE
could catch more than one variable that matches the same pattern. Plus2, echo $VARIABLE
makes possible to complete variable's name by hitting <Tab> (if it exists, that also may be a hint to what you wanna do).
echo $VARIABLE
doesn't tell you whether the VARIABLE is a shell variable (here called "local variable") or an environment variable, which is the whole point of the walkthrough.
env -i bash
seems to be creating a subshell (at least on a Mac) which may have unintended consequences.
env | grep -e '^VARNAME='
.
The original question doesn't mention how the variable was set, but:
In C shell (csh/tcsh) there are two ways to set an environment variable:
set x = "something" setenv x "something"
The difference in the behaviour is that variables set with the setenv command are automatically exported to a subshell while variables set with set aren't.
To unset a variable set with set, use
unset x
To unset a variable set with setenv, use
unsetenv x
Note: in all the above, I assume that the variable name is 'x'.
Credits:
TCSH / CSH: set vs setenv Command Differences
set, unset, setenv, unsetenv, export — Shell Environment Variable Built-in Functions
This may also work.
export GNUPLOT_DRIVER_DIR=
env
command. It just might be the case that the application that uses the variable does not distinguish between non-existent and empty environment variable.
export PAGER=
, but that just disabled paging entirely--all my man pages just dumped straight to the terminal. unset PAGER
did the trick, reverting it to default behaviour.
As mentioned in the above answers, unset GNUPLOT_DRIVER_DIR
should work if you have used export
to set the variable. If you have set it permanently in ~/.bashrc
or ~/.zshrc
then simply removing it from there will work.
Success story sharing
unexport
to doT="$MYVAR"; unset MYVAR; MYVAR="$T"; unset T
?declare +x MYVAR
to remove the export but keep the value in the current shell.export -n MYWAR
works as well in Bash.