8

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

4

1 回答 1

9

一种方法是使用status命令。

例如。

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

--

啊,对不起 - 从你的评论来看,我误读了这个问题。我以为您的意思是完全限定的路径,而不是脚本的目录。

您可以将状态结果发送到 dirname。它不是 fish 的内置功能,就像 status 一样,但 fish 倾向于尽可能多地外包此功能(请参阅 fish设计文档中的“极简主义法则” )。我在文档中看不到任何更好的命令,所以也许这和我们现在能得到的一样好?

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

dirname (status -f)

现在你应该得到:

~/tmp> fish show_filename.fish
/home/foo/tmp
于 2010-12-10T08:59:47.287 回答