Fish脚本可以告诉它存储在哪个目录中吗?

时间:2013-10-30 02:20:07

标签: fish

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

这是BASH的解决方案 Getting the source directory of a Bash script from within

任何人都可以帮我找到与鱼相当的东西吗?

3 个答案:

答案 0 :(得分:21)

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

有关status命令的详细信息,您可以运行man status或查看http://fishshell.com/docs/current/commands.html#status

上的文档

答案 1 :(得分:8)

在鱼壳中,

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

相当于BASH one liner

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

Can a Bash script tell what directory it's stored in?中提及。

答案 2 :(得分:2)

文件路径

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

目录路径

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

相当于this question的内容如下:

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