Я новичок в zsh и обнаружил какое-то странное поведение, но это все превосходит.
Я только что столкнулся с этим чрезвычайно странным поведением, когда объявлял локальный массив в функции zsh, которую я писал для своего файла .zshrc. Когда я объявил локальный массив, это заставило меня сойти с ума. В конце концов я проследил это до двух очень странных функций, которые были созданы случайным образом. Я сократил это до простого случая:
% function () { local foobar=(); echo frog; }
% echo ${functions[foobar=]}
echo frog
% echo ${functions[local]}
echo frog
Первая странная вещь заключается в том, что frog
никогда не печатается из анонимной функции. Но по-настоящему странно то, что вместо этого создаются две функции с именем foobar=
и local
.
Это вызывает все виды проблем для моей подсказки zsh. Всякий раз, когда используется local
ключевое слово, оно печатается как frog
.
Мне действительно интересно, что на земле заставило Zsh создать эти функции.
Я использую zsh 5.0.2