环境变量。他们在哪里得救?

Mar*_*il4 6 bash environment-variables

如果我不编辑 .bashrc 或其他配置文件,当我注销或关闭终端时,我设置的环境变量就会消失。

我很好奇的是,那些“临时”环境变量保存在哪里?

我想,它们可能在记忆中。这是有道理的,因为当终端关闭时它们会消失(等于我使用的终端从内存中消失了)。我对么?

roa*_*ima 8

环境变量存储在与进程关联的内存中。

每个进程都可以访问自己的一组环境变量。子进程(由“当前”进程启动的进程)继承这些变量的副本。任何进程都不可能改变任何其他进程的环境变量。

使用 shell,例如bash您可以在登录或启动新bash进程时定义环境变量。shell 本身还定义了许多环境变量(PWD在被评论提示后突然想到),其他环境变量,例如PATH,在更深的层次上使用,shell在这个例子中,系统库只是- 在这个例子中。

  • 这是对的。该副本来自 `fork()` 系统调用,它通过复制启动它的进程来创建一个新进程。然后,该进程映像大部分被“exec()”系统调用替换,但保留了环境变量。这里的其他一些细节:http://unix.stackexchange.com/a/123390/25985 (2认同)