如果进程无法修改其父进程的环境,那么 MC 在做什么?

如果进程无法修改其父进程的环境,那么 MC 在做什么?

据我所知,进程无法修改其父进程的环境。然而,当我运行mc(GNU 的 Midnight Commander,一个基于诅咒的文件管理器)然后退出它时,我最终得到另一个$PWD

[localhost ~]$ echo $PWD
/home/pedro
[localhost ~]$ mc

removed `/tmp/mc-pedro/mc.pwd.5616'
[localhost pedro]$ echo $PWD
/nfs/home/pedro

我知道它并没有真正“改变”,因为/home是 的符号链接/nfs/home,但无论如何,$PWD它是一个字符串,现在它是一个不同的字符串。

这里发生了什么事?

答案1

由于该命令是脚本mc的别名,因此在. /some/script当前的环境(.相当于source在某些 shell 中)。

以这种方式执行的脚本很可能会更改调用 shell 的环境,因为它是在同一环境中执行的。

相关内容