是否可以使用fish中的相同名称将现有函数与另一个函数包装起来?

时间:2017-10-11 22:22:21

标签: fish

我想创建一个cd函数,它扩展当前的cd函数(在我的机器上),它位于/usr/local/Cellar/fish/2.6.0/share/fish/functions/cd.fish。这可能吗?

这样的事情:

function cd
    if i_can_handle_it
        do_my_thing_with $argv
    else
        call /usr/local/Cellar/fish/2.6.0/share/fish/functions/cd.fish $argv
    end
end

1 个答案:

答案 0 :(得分:2)

您不能拥有两个名称相同的功能。您可以使用具有相同名称的内置命令,函数命令和外部命令。此问题的标准解决方案是首先重命名要包装的函数:functions -c cd cd2。然后定义调用cd的{​​{1}}函数。请注意,无论cd2是否已经运行并因此定义,这都有效,因为首先更改名称会使其自动加载。