パラメータとして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インスタンスに影響を与え、環境内のデータを自動化すると通常は緊張します。

おすすめ記事