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
Answered 2023-09-20 20:34:16
unexport
to do T="$MYVAR"; unset MYVAR; MYVAR="$T"; unset T
? - anyone declare +x MYVAR
to remove the export but keep the value in the current shell. - anyone export -n MYWAR
works as well in Bash. - anyone 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.
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.
Answered 2023-09-20 20:34:16
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). - anyone 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. - anyone env -i bash
seems to be creating a subshell (at least on a Mac) which may have unintended consequences. - anyone env | grep -e '^VARNAME='
. - anyone 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:
Answered 2023-09-20 20:34:16
This may also work.
export GNUPLOT_DRIVER_DIR=
Answered 2023-09-20 20:34:16
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. - anyone 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. - anyone 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.
Answered 2023-09-20 20:34:16
On Linux and macOS, you can use the command unset
to remove an environment variable.
unset GNUPLOT_DRIVER_DIR
You can edit your shell profile file, such as .bashrc
or .bash_profile
in the /etc/profile.d
directory and remove the line that exports the variable.
.bashrc file:
nano ~/.bashrc
Then, search for the line export GNUPLOT_DRIVER_DIR
and delete it. Then save the file.
use the setx
command to delete an environment variable.
setx GNUPLOT_DRIVER_DIR ""
You can find more information about environment variables and how to manage them in the following links:
Answered 2023-09-20 20:34:16
LINUX
First find which script file defines and adds the variable to the environment.
Look in /etc files like profile, bash.bashrc, .bashrc, .bashrc_login, etc
And look in similarly named files in the user's home directory.
If it's not in any of those, it's likely that it's in some script file that was part of an installed package. For example, the package SDKMAN (for managing alternate SDK versions) creates a variable called DERBY_HOME. To find the script file creating it, apply the following search command to the /etc folder:
$ sudo egrep -lir THE_VAR_NAME /etc
This should produce some output like:
/etc/profile.d/jdk.sh
/etc/profile.d/jdk.csh
The separate file jdk.csh is needed for the C-shell environment if users have defaulted to it.
Once found it is simply a matter of navigating to the folder containing the script files, in this case here /etc/profile.d/ and then editing the files (with admin permission), removing the variable assignments and saving:
$ cd /etc/profile.d/
$ sudo gedit jdk.sh
$ sudo gedit jdk.sh
Of course, in this case the package setting the env variable is in use so I kept it.
But if the package were not in use and the env vars dead weight to the startup process, then it should be deleted.
WINDOWS
Use the process shown in this YouTube video.
Answered 2023-09-20 20:34:16