プロセスが親環境を変更できない場合、MCは何をしていますか?

プロセスが親環境を変更できない場合、MCは何をしていますか?

私が知っている限り、プロセスは親プロセスの環境を変更できません。ただし、(CurseベースのファイルマネージャであるGNUのMidnight Commander)を実行して終了するmcと、他の結果が発生します$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

このように実行されるスクリプトは同じ環境で実行されるため、呼び出しシェルの環境を変更する可能性が高くなります。

関連情報