Я подозреваю, что проблема совершенно не связана с именами файлов и также может возникнуть, если вы загружаете .zshrc
в исходном состоянии.
Эта ошибка обычно возникает, когда вы вызываете функцию из самой себя, что приводит к рекурсии. Это может произойти непреднамеренно, когда вы даете функциям то же имя, что и внешняя команда или встроенная функция, используемая внутри этой функции. Например:
echo () {
echo "Out: " $@
}
Команда echo
будет работать нормально до того, как вы определите эту функцию, но после определения произойдет сбой с этой ошибкой:
% echo foobar
echo:1: maximum nested function level reached; increase FUNCNEST?
(Разница в тексте сообщения, вероятно, связана с используемыми версиями zsh, в моем случае это 5.6.2)
Это также может произойти из-за того, что несколько функций вызывают друг друга:
foo () {
echo $@
}
echo () {
something_else
foo $@
}
В сообщении об ошибке будет показано имя функции, которую больше нельзя вызывать из-за достижения предела вложенности, и строка функции, в которой происходит этот вызов. Таким образом, в приведенном выше случае либо:
% echo foobar
echo:1: maximum nested function level reached; increase FUNCNEST?
или
% echo foobar
foo:2: maximum nested function level reached; increase FUNCNEST?
В случае вопроса кажется, что функция с именем bash
вызывается в строке 30 какой-то функции.
Если рекурсия не является преднамеренной,этого можно избежать, указав zsh
, какую функциональную команду, отличную от -, вы хотите использовать.
Если вам нужна встроенная команда -, просто добавьте перед нейbuiltin
:
echo ()
{
builtin echo "Out: " $@
}
Если вам нужна внешняя команда, добавьте перед нейcommand
:
echo ()
{
command echo "Out: " $@
}
или используйте полный путь
echo ()
{
/bin/echo "Out: " $@
}
Если вы не уверены, где вы используете bash
в конфигурации zsh
, вы можете использовать grep
для рекурсивного поиска ${TOOLS_HOME}/cli/
:
grep -r bash ${TOOLS_HOME}/cli/