删除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脚本代码更健壮。
广告