
maximum nested function level reached
27. Feb 2010, 16:39
Seit einigen Wochen arbeite ich jetzt auf der Zsh. Gestern hab ich dann mal wieder ein bisschen an meiner .zshrc
gebastelt und heute konnte ich dann auf einmal keine Ordner mehr anlegen.
Die Shell brach das ganze mit folgendem Fehler ab:
2
mkdir:2: maximum nested function level reached
Natürlich erst einmal gecheckt wer der Verursacher ist. Bash hatte mit mkdir
kein Problem, damit war klar das es nicht an mkdir
selbst liegt, sondern an der Zsh.
Gleich dran gedacht, dass ich ja gestern die rc
geändert hab, und da die nicht so riesig ist war der Fehler schnell gefunden. In der Datei hatte ich folgende Funktion implementiert:
2
3
4
{
mkdir $1 && cd $1
}
Wenn diese auskommentiert ist gibt es keine Probleme. Aber wo ist da der Fehler!? Und was hat das ganze mit dem eigentlichen mkdir
zu tun??
Ok, damit ihr nicht zu viel grübelt, hier die Auflösung. Ich habe in /etc/zsh/
die zshrc
von GRML liegen (hier zu bekommen). In dieser wurde ein Alias namens md
gesetzt:
Heißt also md
wird mit mkdir
ersetzt. So auch in meiner rc
! Wenn ich jetzt nachgucke was mkdir
ist, komm ich zu folgenden Ergebnis:
2
3
4
5
6
mkdir is a shell function
me@abakus /tmp % which mkdir
mkdir () {
mkdir $1 && cd $1
}
Damit hab ich ungewollt eine Endlosschleife produziert :P
Jetzt macht auch die Fehlermeldung Sinn.. Um das zu umgehen steht bei mir vor der Funktion jetzt
Viel Spass beim nachproggen!