홈브류 쉘에서 CD 명령이 작동하지 않는 이유는 무엇입니까? [복사]

홈브류 쉘에서 CD 명령이 작동하지 않는 이유는 무엇입니까? [복사]

나는 C로 매우 기본적인 쉘을 작성했습니다. 입력을 읽은 다음 이를 실행합니다 system(lineCopy);(lineCopy는 입력의 복사본입니다). 을 제외한 모든 명령이 잘 실행됩니다 . 다른 디렉터리에 액세스 cd하려고 하면 현재 디렉터리에 그대로 유지됩니다. 존재하지 않는 디렉토리에 액세스 cd하려고 하면 , just like it should 이라는 메시지가 나타납니다 . 그러나 존재하는 디렉토리로 cd를 시도하면 명령을 읽지만 동일한 디렉토리에 남아 있습니다. 현재 PWD를 저장하는 변수는 지속적으로 업데이트되므로 그럴 수 없습니다. 다른 모든 명령은 완벽하게 실행됩니다. 그런데 왜 안되죠?cdsh: 1: cd: can't cd to /some_nonexistant_directorycd

답변1

환경 변수를 변경해 보았으나 작동하지 않았습니다. 시스템은 환경과 현재 작업 디렉터리를 상속합니다. 따라서 각 시스템 호출은 상위 시스템에서 현재 작업 디렉터리를 상속받습니다.

관련 정보