同じコードがあるシステムで実行され、別のシステムでは失敗します。
% 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(犯罪)
- バージョン5.2は2015年12月にリリースされました。
- に紹介今回提出してください2015年1月(2015年6月現在
git bisect
)以降、このバグはバージョン5.0.8(2015年6月)、5.1、5.1.1に影響します。