进程如何改变其父进程的环境变量?

进程如何改变其父进程的环境变量?

cd个例子。同样,这让cd我想起了这个问题。当我们在终端上输入“cd”并按下回车键时,cd终端的子进程就会启动,在我看来,所有的事情cd都是在子进程中执行的cd。令我困惑的是,如何让它cd改变其父进程的环境变量?

答案1

cd没有对其父进程进行任何更改,因为它cd不是一个进程。

它是一个 shell 内置函数 - 大多数(每个?)shell 都必须改变其目录上下文的构造。

cd在 bash 上会改变你在 bash 上的 cwd。cd在 zsh 上也会在 zsh 上执行相同的操作。这是 bash/zsh 所做的。而且它们正在改变自己的上下文。

话虽如此,我认为子进程不可能改变其父进程的环境。应该从理论上讲,通过直接访问内存是可行的,但我假设我们谈论的是现实生活中的场景:-)

相关内容