使用标准git命令时出现错误:
[~/site]$ git branch git:1: maximum nested function level reached
.zshrc:
plugins=(git osx colored-man gem brew go bundler rake rails) source $ZSH/oh-my-zsh.sh
xggvc2p61#
我的错误,我把bash函数移到了zsh:
gr() { git rebase -i HEAD~$1 }
解决方法:
function gr() { git rebase -i HEAD~$1 }
gstyhher2#
我在使用另一个命令(export)时也遇到了同样的错误,这是由一个意外的递归函数定义引起的。我可以通过删除不需要的函数来解决这个问题:
export
unset -f export
von4xj4u3#
我遇到了同样的问题,但命令不同:find
find
不要在函数脚本中调用函数的别名。
$ find ~ -name some_thing find_no_err:1: maximum nested function level reached; increase FUNCNEST?
问题
find_no_err
alias c=f
# the recursion issue c=f(c)
避免调用函数的别名或在脚本中调用给定函数的命令或者,对于c=f(c),不要从f调用c而是使用以下三个选项之一:
c=f(c)
f
c
cmd
./cmd
# to get it, in linux systems, use whereis cmd
'cmd'
我刚才在函数体中引用了find调用
find_no_err(){ 'find' $* 2>/dev/null }
然后查找文件的来源(“源文件”参见zsh doc,“点描述”参见POSIX规范)
1.这些问题似乎很相似:一个git调用会调用一个git别名/函数来调用它的调用者...
alias gr='git remote' # line 246
在git branch调用之后,可能与OP自定义函数有一些冲突(但我不知道如何实现)1.在我的情况下,公认的解决方案行不通添加可选的(cf. zsh doc)function标识符不会阻止函数体中的别名调用(默认情况下)。这会导致递归问题,从而引发“达到最大嵌套函数级别”;“错误1.可以 * 在bash和zsh之间共享自定义函数,方法是将它们放在一个单独的点文件中,然后从它们各自的rc文件中获取
function
您可以unset或删除更改,如bluenote 10answer中所述
unset
lmvvr0a84#
关闭终端然后重新打开,对我很有效
4条答案
按热度按时间xggvc2p61#
我的错误,我把bash函数移到了zsh:
解决方法:
gstyhher2#
我在使用另一个命令(
export
)时也遇到了同样的错误,这是由一个意外的递归函数定义引起的。我可以通过删除不需要的函数来解决这个问题:von4xj4u3#
我遇到了同样的问题,但命令不同:
find
TL;DR
不要在函数脚本中调用函数的别名。
错误
问题
find_no_err
),它使用命令c(find
)解决方案
避免调用函数的别名或在脚本中调用给定函数的命令
或者,对于
c=f(c)
,不要从f
调用c
而是使用以下三个选项之一:
cmd
)实践中
我刚才在函数体中引用了find调用
然后查找文件的来源(“源文件”参见zsh doc,“点描述”参见POSIX规范)
这与原来的问题有什么关系?
1.这些问题似乎很相似:一个git调用会调用一个git别名/函数来调用它的调用者...
在git branch调用之后,可能与OP自定义函数有一些冲突(但我不知道如何实现)
1.在我的情况下,公认的解决方案行不通
添加可选的(cf. zsh doc)
function
标识符不会阻止函数体中的别名调用(默认情况下)。这会导致递归问题,从而引发“达到最大嵌套函数级别”;“错误1.可以 * 在bash和zsh之间共享自定义函数,方法是将它们放在一个单独的点文件中,然后从它们各自的rc文件中获取
或者
您可以
unset
或删除更改,如bluenote 10answer中所述lmvvr0a84#
关闭终端然后重新打开,对我很有效