在 Linux Shell 中删除导出的环境变量

linuxopen sourceoperating system更新于 2026/1/27 18:52:17

概述

本文介绍如何从系统中删除环境变量。

环境变量是一种特殊的变量,可供计算机上运行的所有进程使用。此变量的名称为 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 脚本代码的健壮性。


相关文章


有用资源