在 bash 中,我们可以通过
$0
变量检索当前脚本的路径,因此如果任何脚本具有与脚本目录位于同一目录下的依赖资源,即使我们没有在 bash 中执行脚本,我们也可以使用它脚本的目录。
如何在fish shell中检索当前脚本的路径?
status --current-filename
就是您正在寻找的。
请注意,这同时处理源文件和执行文件,而 bash 中的 $0 仅适用于执行文件。
另一个(正确且选定的)答案太旧了(近十年前)。截至 2024 年,在 Fish 版本 3.7.1 中,原始问题的(简化)答案是......
realpath (status dirname)
status dirname
将显示当前目录,通常是相对路径。 Fish 内置 realpath
显示任何符号链接后面的绝对路径。