获取当前 zsh 启动文件的完整路径(例如 zshrc 或 zshenv)

获取当前 zsh 启动文件的完整路径(例如 zshrc 或 zshenv)

有没有办法获取当前正在处理的 zsh 启动文件的完整路径(例如 zshrc 或 zshenv)?换句话说,假设我有一个 zshrc 文件,可以位于/usr/local/etc/zshrc$HOME/.zshrc。在这个 zshrc 文件中,我需要根据其位置执行不同的操作。通常的方法$0不起作用,因为它包含 zsh 二进制文件的路径而不是 zshrc 脚本的路径。

答案1

通过提示扩展,%N可以为您提供(当前脚本/源文件/函数)。

所以你可以这样做:

print -P %N

或者从 获取它${(%):-%N}

另请参阅$funcsourcetrace调用堆栈文件。

相关内容