내가 아는 한, 프로세스는 상위 프로세스의 환경을 수정할 수 없습니다. 그러나 (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
이러한 방식으로 실행되는 스크립트는 동일한 환경에서 실행되므로 호출 쉘의 환경을 변경할 가능성이 높습니다.