Fish如何防止递归函数调用
Fish how to prevent recursive function calls
在使用具有相同名称的函数覆盖默认二进制文件时,如何防止对 fish 函数的递归函数调用?
例如
# Override 'ls'
function ls
if [ my_special_condition ]
* Do special stuff *
else # Call regular ls
ls $argv
end
end
显然,上面的代码在没有调用实际 'ls' 二进制文件的情况下以递归循环结束。
有办法解决这个问题吗?
在函数内,使用the command
command
function ls
command ls $argv
end
我了解到您想替换 ls
函数,同时又能调用原始函数。您可以通过 functions -c
:
复制函数来做到这一点
functions -c ls orig_ls # copies ls to orig_ls
function ls
if [ my_special_condition ]
* Do special stuff *
else # Call original ls
orig_ls $argv
end
end
在使用具有相同名称的函数覆盖默认二进制文件时,如何防止对 fish 函数的递归函数调用?
例如
# Override 'ls'
function ls
if [ my_special_condition ]
* Do special stuff *
else # Call regular ls
ls $argv
end
end
显然,上面的代码在没有调用实际 'ls' 二进制文件的情况下以递归循环结束。 有办法解决这个问题吗?
在函数内,使用the command
command
function ls
command ls $argv
end
我了解到您想替换 ls
函数,同时又能调用原始函数。您可以通过 functions -c
:
functions -c ls orig_ls # copies ls to orig_ls
function ls
if [ my_special_condition ]
* Do special stuff *
else # Call original ls
orig_ls $argv
end
end