매개변수로 Zsh Hook 함수 정의

매개변수로 Zsh Hook 함수 정의

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 인스턴스에 영향을 미치며 환경에서 데이터를 자동화하면 일반적으로 긴장됩니다.

관련 정보