使用fish检索当前源文件的路径

时间:2010-01-10 15:29:20

标签: fish

在fish shell脚本中,是否可以获取shell脚本所在的路径?在bash中,您可以使用BASH_SOURCE变量来执行此操作。

1 个答案:

答案 0 :(得分:9)

一种方法是使用status命令。

例如

~/tmp> echo status -f > show_filename.fish
~/tmp> fish show_filename.fish
/home/foo/tmp/show_filename.fish

-

啊,对不起 - 根据你的评论判断,我误解了这个问题。我认为你的意思是完全限定的路径,而不是脚本的目录。

您可以将状态结果发送到dirname。这不是鱼的内置功能,就像状态一样,但鱼往往会尽可能多地外包这种功能(参见“极简主义法则”,鱼类design doc)。我在文档中看不到任何更好的命令,所以也许这就像我们现在可以得到的一样好?

修改示例,将show_filename.fish的内容更改为:

dirname (status -f)

现在你应该得到:

~/tmp> fish show_filename.fish
/home/foo/tmp