동일한 코드가 한 시스템에서 실행되고 다른 시스템에서는 실패합니다.
% 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에 영향을 미칩니다.