即使在退出后,环境变量仍保留在Python脚本中

2024-04-26 06:21:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在运行用Python编写的测试工具。在通过这个测试工具运行测试之前,我通过一个shell脚本导出一些环境变量,该脚本在导出变量后调用测试工具。当线束出现在图片中时,它检查变量是否在环境中,并根据环境变量中的值执行操作。在

但是,在测试执行之后,我认为环境变量的值不会在下一次被清除,它会选择那些值,即使这些值不是通过shell脚本设置的。在

如果它们被显式设置,线束将拾取新值,但如果我们下次清除它,它将再次拾取在第一次运行中设置的值。在

我试着用“del”清除变量操作系统环境['var']”命令在每次测试执行后执行,但这并没有解决问题。有人知道为什么这些价值观会被保留吗?在

在shell上,这些变量的设置与unix命令中的“env”不同。它只是在测试线束中显示值。没有一个env变量将它们的值存储在任何文本文件中。在


Tags: 命令env脚本环境var环境变量unix测试工具
2条回答

python进程不能影响启动它的父shell进程的环境。如果有父shell,则其环境将一直存在,除非/直到shell本身更改它。在

但是,bash脚本只能为子脚本设置环境变量,如下所示:

export OPTIONS=parent
OPTIONS=child python child.py
echo $OPTIONS

这将响应“parent”,而不是“child”,但是python进程将看到OPTIONS=child。你没有很清楚地描述你的设置,但也许这可以帮助你?在

子shell可以更改它从父级继承的变量,但子级所做的更改不会影响父级。
当一个新的子shell启动时,其中从父级导出的变量可见。该变量由del os.environ['var']取消设置,但父级中此变量的值保持不变。在

相关问题 更多 >