17

所以,我真的很喜欢 Fish - 但我需要一些脚本方面的帮助。尤其是找到正在运行的脚本的路径。

这是 BASH 从内部获取 Bash 脚本的源目录的解决方案

谁能帮我找到鱼的等价物?

4

3 回答 3

26

status --current-filename将输出当前执行脚本的路径。

有关 status 命令的更多信息,您可以运行man status或查看位于http://fishshell.com/docs/current/commands.html#status的文档

于 2013-10-30T04:01:41.933 回答
9

在鱼壳里,

set DIR (cd (dirname (status -f)); and pwd) 

相当于 BASH one liner

DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"

中提到的 Bash 脚本可以告诉它存储在哪个目录中吗?.

注意:鱼壳将cd进入该目录并留在那里。Bash 会cd,但它仍然包含在子命令中。

于 2015-12-05T10:37:17.813 回答
5

文件路径

要获取脚本的完整路径,请使用status --current-filenameset FILE (status --current-filename)声明一个变量。

目录路径

要获取脚本所在目录的完整路径,请使用dirname (status --current-filename)set DIR (dirname (status --current-filename))声明一个变量。

这个问题的等价物如下:

set DIR (dirname (status --current-filename))是等价的

于 2016-04-14T15:46:57.273 回答