Jestem nowy w Zsh i odkryłem dziwne zachowanie, ale to wszystko.
Właśnie spotkałem to niezwykle dziwne zachowanie, kiedy deklarowałem lokalną tablicę w funkcji zsh, którą pisałem dla mojego pliku .zshrc. Kiedy zadeklarowałem lokalną tablicę, spowodowałem, że mój monit oszalał. W końcu prześledziłem go do dwóch bardzo dziwnych funkcji, które zostały losowo utworzone. Sprowadziłem to do prostej skrzynki:
% function () { local foobar=(); echo frog; }
% echo ${functions[foobar=]}
echo frog
% echo ${functions[local]}
echo frog
Pierwszą dziwną rzeczą jest to, że frog
nigdy nie jest drukowana z anonimowej funkcji. Ale naprawdę dziwne jest to, że zamiast tego dwie funkcje zostały nazwane foobar=
i local
zostały utworzone.
Powoduje to wszelkiego rodzaju problemy z moim monitem zsh. Każde local
użycie słowa kluczowego powoduje jego wydrukowanie frog
.
Naprawdę zastanawiam się, co do cholery spowodowało, że Zsh stworzył te funkcje.
ja używam zsh 5.0.2