删除Linux shell中导出的环境变量


概述

本文解释如何从系统中删除环境变量。

环境变量是一种特殊的变量,可以在您的机器上运行的所有进程中使用。此变量的名称为EXPORTED_VARIABLE。您可以使用它在不同的程序之间甚至不同的用户之间传递信息。例如,您可能希望导出存储音乐文件的目录的路径,以便其他用户可以轻松访问它们。

环境变量

环境变量存储在进程的内存空间中,可以通过getenv()函数访问。它返回指向指定环境变量值的指针。如果没有这样的变量,则返回NULL。

Linux shell中导出的变量列表

您可以使用env命令列出当前所有导出的环境变量。此命令列出已为当前用户设置的所有环境变量。

$ env | grep -i '^EXPORT'
EXPORTPATH/usr/bin:/usr/local/bin:/home/user1/bin

您可以使用以下命令查看导出的变量列表:

$ env | grep -i 'EXPORTED_VAR'

使用unset命令

unset命令是一个shell命令,用于清除导出环境变量的值。这意味着,如果您运行unset EXPORTED_VARAIBLE,则任何进程都将不再访问该变量的值。如果要完全删除变量,则需要运行unset -f EXPORTED_VARIABLE。

让我们使用此命令并查看是否得到任何结果。

$ export file_name="test.txt"
$ env | grep file_name
file_name=test.txt
$ unset file_name
$ env | grep file_name

我们通过运行env命令来验证该变量是否已从我们的shell环境中删除。

赋值为空值

您可以通过为导出的变量赋值为空值来清除它们的值。

$ export file_name="test.txt"
$ env | grep file_name
file_name=test.txt
$ export file_name=
$ env | grep file_name
file_name=

它实际上并没有从环境中删除变量;而只是将其设置为一个空字符串。

使用env命令

env命令允许我们在修改后的环境中运行程序。然后,我们可以使用此命令重置导出变量的导出状态。

$ export file_name="test.txt"
$ env | grep file_name
file_name=test.txt
$ env -i bash
$ env | grep file_name

我们在这里使用-i标志,它清除用户先前设置的变量,并使用默认值启动另一个bash shell。

退出新的bash会话并检查环境变量是否出现在旧的会话中。

$ exit
$ env | grep file_name
file_name=test.txt

结论

我们查看了几种导出环境变量的不同方法,以便以后可以使用它。我们可以使用这些命令行工具使我们的shell脚本代码更健壮。

更新于:2022年12月23日

16K+ 次浏览

开启你的职业生涯

通过完成课程获得认证

开始学习
广告