ローカルバイナリを使用してzshで継続的な災害を回避するには?

ローカルバイナリを使用してzshで継続的な災害を回避するには?

スクリプトが複数のローカル実行ファイルを追加する「仮想環境」が設定されています$PATH。すべてを設定した後、スクリプトhash -rはbashで完全に機能します。

source venv/bin/activate
foo # foo is venv/bin/foo
bar # bar is venv/bin/bar

環境が設定されると、呼び出すまでそのまま残りますdeactivate。 zshでは、環境は最初はうまく設定されていますが、しばらくして(遅延が定義されていないようです)、呼び出されるまでrehash動作は停止します。

source venv/bin/activate
foo # foo is venv/bin/foo
bar # bar is venv/bin/bar
bar # bar is /usr/bin/bar ??
rehash
bar # bar is /venv/bin/bar

関連する場合venv/bin/fooに予約されたスクリプトへのリンクであり$0、他のスクリプトを呼び出し、最終的に特定のfooドッカーコンテナ内で実行されます。

これが起こらないようにするにはどうすればよいですか?

関連情報