
zshrc나 프롬프트에서 정의하는 대신 zsh를 시작할 때 후크 함수를 매개변수나 env var로 정의할 수 있는지 궁금합니다.
예를 들어 ;
zsh -F preexec() { date } -F chpwd() { pwd }
감사합니다
답변1
다음과 같은 지원 코드를 추가하지 않으면 쉽지 않습니다 ~/.zshrc
.
if [[ -o interactive && $1 = eval ]]; then
"$@"; argv=()
fi
그런 다음 다음과 같이 호출하십시오 zsh
.
zsh -s eval 'preexec() date; chpwd() pwd'
예를 들어.
환경 변수와 동일:
if (($+ZSH_STARTUP_CODE)); then
eval " $ZSH_STARTUP_CODE"
fi
다음과 같이 호출됩니다 zsh
.
ZSH_STARTUP_CODE='preexec() date; chpwd() pwd' zsh
그러나 env 변수는 상속되므로 해당 환경에서 시작된 모든 zsh 인스턴스에 영향을 미치며 환경에서 데이터를 자동화하면 일반적으로 긴장됩니다.