相同的代码在一个系统上运行,在另一个系统上失败:
% zsh --version
zsh 5.0.7 (x86_64-pc-linux-gnu)
% typeset -A frobozz
% alias -g foo='echo xyz'
% frobozz[$(foo)]=9
% echo ${(kv)frobozz}
xyz 9
% zsh --version
zsh 5.1 (i386-unknown-netbsdelf6.1)
% typeset -A frobozz
% alias -g foo='echo xyz'
% frobozz[$(foo)]=9
zsh: not an identifier: frobozz[$(fooech9
我想知道如何让它在两个系统上都工作。
如果能了解失败案例中到底发生了什么,那就太好了。
与往常一样,任何有关如何调试zsh
脚本的建议都将受到赞赏。 (我发现zsh
脚本本质上是不可调试的......上面的例子是一个非常典型的说明。)
答案1
这是一个错误(回归)。
- 报告(由您,谢谢)于https://www.zsh.org/mla/workers/2015/msg03017.html
- 固定于https://www.zsh.org/mla/workers/2015/msg03042.html(犯罪)
- 2015年12月发布5.2版本
- 引入于这次提交从 2015 年 1 月(根据
git bisect
)开始,该错误影响了版本 5.0.8(2015 年 6 月)、5.1 和 5.1.1 。