zsh で ${PATH} が初期化されて困る
zsh は非インタラクティブな形で呼んでも /etc/zsh/zshenv
を毎回読むらしく、 その中に . /etc/profile.env
とか書いてあるおかげで ${PATH}
が初期化されてしまう。
で、非インタラクティブだと ${HOME}/.zshrc
なんかは読まれないので、 PATH="${PATH}:${HOME}/bin
みたいな設定が反映されず、 その下に置いてあるスクリプトが実行できない。
${SHELL} -c "execute some command"
みたいなことをしてるヤツ(vim の :!
とか)や #!/bin/zsh
なスクリプトやらがこのせいでうまく動かないんだけど、どうしたもんかね。
${SHLVL}
あたり見て動き変えるように書き換えちゃえばいいのか? と思ったけど、今度は PATH が二重に設定されたりとかで、何か結構面倒くさそうな気配がしてきた。
後で、 zsh な設定ファイル類の読み込まれる順番とか考慮してちゃんと考えよう。
パッケージのミスだったっぽく、 app-shells/zsh-4.3.11-r2::arbor
に上げたら期待通りの動きになってくれた。