在fish shell脚本中,是否可以获取 shell脚本所在的路径?在bash中,您可以使用BASH_SOURCE变量来执行此操作. 一种方法是使用 status命令. 例如. ~/tmp echo status -f show_filename.fish~/tmp fish show_filenam
例如.
~/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