有条件地在 zsh 中获取脚本

Conditionally source a script in zsh

我目前在 .zshrc 中获取初始化脚本。不幸的是,这对我的环境做了一些修改,$PATH 我不想要,除非我在某些特定目录中。

当然,我可以将 pwd 的输出与当前目录进行比较,但如果我在特定目录 之一中,我想获取源代码它的任何级别的子目录。

我的问题可能有完全不同的解决方案吗?

仅仅为了 运行 pwd 使用子进程是矫枉过正的。你发现你的当前目录总是存储在变量 PWD 中。这个变量由 zsh 自动维护。

您可以通过

查找您的工作目录是否在某个目录dir中或以下
if [[ $PWD:A == $dir:A || $PWD:A == $dir:A/** ]]
then
  # I am in $dir or below it
  ...
fi

:A 处理比较中涉及的路径组件之一恰好是符号链接的情况。我不确定 PWD 是否需要这个,但使用它不会有什么坏处。