하위 프로세스에서 현재 디렉토리 변경

하위 프로세스에서 현재 디렉토리 변경

호출하는 셸의 현재 디렉터리를 계속 변경할 수 있으면서도 하위 프로세스에서 셸 스크립트가 실행되도록 어떻게 준비할 수 있나요?

답변1

당신은 할 수 없습니다.

상위 셸의 환경은 하위 프로세스가 시작될 때 하위 프로세스에 복사되며, 그 시점부터 이들은 구별되고 완전히 분리됩니다. 하위 프로세스는 상위 프로세스의 환경을 직접 수정할 수 없습니다.

아이가 부모에게 영향을 미칠 수 있는 유일한 방법은 아이가 부모에게 메시지를 보내고 부모가 이에 따라 행동하는 것입니다.

eval "$( bash -c 'echo "cd /"' )"  # message through command string to stdout

또는

# message through USR1 signal triggers predefined action

trap 'cd /' USR1
bash -c 'kill -s USR1 "$PPID"'

관련 정보