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