`/etc/zshenv`는 대화형 비로그인 쉘을 위해 iTerm2에서 두 번 실행됩니다.

`/etc/zshenv`는 대화형 비로그인 쉘을 위해 iTerm2에서 두 번 실행됩니다.

쉘 시작 파일을 처리하려고 하는데 왜 내 파일이 etc/zshenv두 번 실행되는지 이해할 수 없습니다. 모든 시작 파일에 echo 문이 있는데 다음과 같은 결과를 얻습니다.

In /etc/zshenv
In ~/.zshenv for user: davidkennell
In /etc/zshrc
In ~/.zshrc for user: davidkennell
In /etc/zshenv

iTerm2 환경 설정을 통해 zsh를 쉘로 설정하고 Profiles/general설정에서 다음을 실행하여 쉘을 시작하도록 지시했습니다./usr/local/bin/zsh

답변1

메시지의 순서가 주어지면 콘텐츠 중 일부가 실행 .zshrc됩니다 /etc/zshenv. 이는 source /etc/zshenv또는 다른 zsh 인스턴스에 대한 호출일 수 있습니다 . 비슷한 것을 찾고 있습니다.

. /etc/zshenv
source /etc/zshenv
zsh -c …
zsh /path/to/file
/path/to/file                             # which starts with #!/usr/bin/env zsh

또는 이들의 변형.

문제의 행은 .zshrc그 자체에 있을 수도 있고 해당 행이 시작된 다른 파일에 있을 수도 있습니다.

zsh -x또는 실행하여 zsh -f -x ~/.zshrc추적에서 문제가 있는 명령을 찾을 수 있습니다. 아마도 소스 코드에서 찾는 것보다 쉬울 것입니다.

zsh 스크립트인 다른 프로그램을 실행하는 경우가 가장 감지하기 어렵습니다. 이를 위해서는 더 쉬울 수도 있습니다.다음에 대한 액세스를 모니터링합니다./etc/zshenv. 반면에 이런 일이 발생한다면 이는 완전히 정상적인 것이며 이에 대해 취할 수 있는 조치는 없습니다.

관련 정보