Tôi mới làm quen với zsh và đã phát hiện ra một số hành vi kỳ lạ, nhưng điều này đứng đầu tất cả.
Tôi vừa bắt gặp hành vi cực kỳ lạ này khi khai báo một mảng cục bộ trong hàm zsh mà tôi đang viết cho tệp .zshrc của mình. Khi tôi khai báo một mảng cục bộ, nó khiến cho dấu nhắc của tôi phát điên. Cuối cùng tôi đã truy tìm nó trở lại hai chức năng rất lạ được tạo ngẫu nhiên. Tôi đã giảm nó thành một trường hợp đơn giản:
% function () { local foobar=(); echo frog; }
% echo ${functions[foobar=]}
echo frog
% echo ${functions[local]}
echo frog
Điều kỳ lạ đầu tiên là frog
không bao giờ được in từ chức năng ẩn danh. Nhưng điều thực sự kỳ lạ là thay vào đó hai hàm được đặt tên foobar=
và local
được tạo.
Điều này gây ra tất cả các loại vấn đề cho dấu nhắc zsh của tôi. Bất cứ khi nào local
từ khóa được sử dụng nó được in frog
.
Tôi thực sự tự hỏi những gì trên trái đất gây ra zsh để tạo ra các chức năng.
tôi đang dùng zsh 5.0.2