关于Linux:如何删除导出的环境变量?

How do I delete an exported environment variable?

在安装gnuplot之前,我设置了环境变量GNUPLOT_DRIVER_DIR = /home/gnuplot/build/src。在安装过程中,出了点问题。

我想删除GNUPLOT_DRIVER_DIR环境变量。我怎样才能做到?


你要找的是unset

1
unset GNUPLOT_DRIVER_DIR


在bash中创建和删除环境变量的演练:

测试dualcase变量是否存在:

1
2
el@apollo:~$ env | grep DUALCASE
el@apollo:~$

它不会,因此创建变量并导出它:

1
2
el@apollo:~$ DUALCASE=1
el@apollo:~$ export DUALCASE

检查是否存在:

1
2
el@apollo:~$ env | grep DUALCASE
DUALCASE=1

它在那里。所以把它扔掉:

1
el@apollo:~$ unset DUALCASE

检查它是否仍然存在:

1
2
el@apollo:~$ env | grep DUALCASE
el@apollo:~$

将删除dualcase导出的环境变量。

帮助清除本地和环境变量的额外命令:

登录时将所有局部变量重置为默认值:

1
2
3
4
5
6
7
8
9
el@apollo:~$ CAN="chuck norris"
el@apollo:~$ set | grep CAN
CAN='chuck norris'
el@apollo:~$ env | grep CAN
el@apollo:~$
el@apollo:~$ exec bash
el@apollo:~$ set | grep CAN
el@apollo:~$ env | grep CAN
el@apollo:~$

exec bash命令清除了所有局部变量,但没有清除环境变量。

在登录时将所有环境变量重置为默认值:

1
2
3
4
5
6
el@apollo:~$ export DOGE="so wow"
el@apollo:~$ env | grep DOGE
DOGE=so wow
el@apollo:~$ env -i bash
el@apollo:~$ env | grep DOGE
el@apollo:~$

env -i bash命令在登录时将所有环境变量清除为默认值。


因为最初的问题没有提到变量是如何设置的,因为我到了这个页面寻找这个特定的答案,所以我添加了以下内容:

在C shell(csh/tcsh)中,有两种方法可以设置环境变量:

  • set x ="something"
  • setenv x"something"
  • 不同的是,使用setenv命令设置的变量会自动导出到子shell,而使用set设置的变量则不会。

    要使用set取消设置变量集,请使用

    1
    unset x

    要使用setenv取消设置变量集,请使用

    1
    unsetenv x

    注意:在以上所有内容中,我假设变量名为"x"。

    信用:

    https://www.cyberciti.biz/faq/unix-linux-difference-between-set-and-setenv-c-shell-variable/https://www.oreilly.com/library/view/solaristm-7-reference/0130200484/0130200484_ch18lev1sec24.html


    这也可能有效。

    1
    export GNUPLOT_DRIVER_DIR=