프로세스가 상위 환경을 수정할 수 없는 경우 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

이러한 방식으로 실행되는 스크립트는 동일한 환경에서 실행되므로 호출 쉘의 환경을 변경할 가능성이 높습니다.

관련 정보