-c를 통해 명령을 전달할 때 .zshrc를 실행합니다.

-c를 통해 명령을 전달할 때 .zshrc를 실행합니다.

명령을 실행하는 스크립트가 있습니다 zsh -c. 그런데 zsh실행시 로딩이 안되는 것 같습니다 ~/.zshrc.

알겠어요로그인 셸 플래그가 존재합니다., 하지만 zsh -lc <command>그것도 작동하지 않는 것 같습니다.

내 파일에 정의된 함수, 별칭 및 변수를 가져오는 방법~/.zshrc런타임 패딩 zsh -c?

답변1

zsh.zshrc비대화형 쉘에서는 읽지 말고 zsh다음을 허용하십시오.대화형 셸을 호출하여 스크립트 실행:

$ zsh -ic 'type f'
f is a shell function

또는 언제든지 .zshrc수동으로 가져올 수 있습니다.

$ zsh -c '. ~/.zshrc; type f'
f is a shell function

답변2

cuonglm이 말했듯 이 비대화형 쉘에는 로드 zsh되지 않지만.zshrc하다.zshenv. 따라서 tty 구성과 같이 tty가 필요하지 않은 설정을 수행하는 $PATH경우 .zshenv.

~에서zsh 문서:

.zshenv-f 옵션이 설정되지 않은 경우, 쉘에 대한 모든 호출에서 이 정보를 얻습니다. 여기에는 명령 검색 경로를 설정하는 명령과 기타 중요한 환경 변수가 포함되어야 합니다. .zshenv출력을 생성하거나 쉘이 tty에 연결되어 있다고 가정하는 명령을 포함해서는 안 됩니다.

관련 정보