无法在新终端窗口/选项卡上评估 zshrc 文件的正确路径

问题描述 投票:0回答:1

我正在尝试设置点文件/配置。

我想要实现的目标之一是,无论我在哪里克隆点文件,我都可以自动拥有像

updateDotfiles
这样的别名,它将提取最新的更改。

为了实现这一目标,我尝试将

export DOTFILES_PATH=${0:P:h}
放入我的
.zshrc
中,以便我可以自动检测到我的 dotfiles 文件夹的路径。

如果我运行

source ~/.zshrc
(这是一个符号链接),这完全按照我想要的方式工作。我注意到,当我第一次打开新的终端选项卡/窗口时,
${0:P:h}
解析到错误的位置。如果我从中删除
:h
并回显结果,我会得到
/Users/me/-zsh
然后如果我运行
source ~/.zshrc
我会得到
/Users/me/dotfiles-and-utils/.zshrc

我在这里缺少什么吗?如何让它同时适用于新窗口和单个源运行?

如果相关的话,我正在使用 iTerm2 和 oh-my-zsh

terminal zsh oh-my-zsh zshrc dotfiles
1个回答
0
投票

我遇到了以下问答,这让我朝着正确的方向前进(我不会假装理解它到底在做什么)https://unix.stackexchange.com/questions/249606/get-full-path-of -当前-zsh-启动文件-e-g-zshrc-或-zshenv

使用 ChatGPT 我设法调整它以按照我想要的方式工作,解决方案是使用

DOTFILES_PATH=$(dirname $(realpath ${(%):-%N}))

realPath
解析您设置的任何符号链接

就我而言,我想要存储 zshrc 文件的目录,因此使用

dirname

© www.soinside.com 2019 - 2024. All rights reserved.