【问题标题】:Conditionally source a script in zsh有条件地在 zsh 中获取脚本
【发布时间】:2020-11-19 17:12:41
【问题描述】:

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

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

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

【问题讨论】:

  • 所以您希望这些修改仅出现在某些终端窗口中而不出现在其他窗口中?因为您可以随时更改目录。运行一个脚本来启动它(包括将提示更改为警告)。

标签: zsh oh-my-zsh


【解决方案1】:

使用子进程来运行pwd 是多余的。您会发现当前目录始终存储在变量PWD 中。此变量由 zsh 自动维护。

你可以通过

查看你的工作目录是在某个目录dir下面还是下面
if [[ $PWD:A == $dir:A || $PWD:A == $dir:A/** ]]
then
  # I am in $dir or below it
  ...
fi

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-21
    • 2013-09-16
    • 2021-11-04
    • 1970-01-01
    相关资源
    最近更新 更多