I can't understand the way zsh 5.9 behaves when assigning $!
to an array:
unset a b c
sleep 3 &
a=$!
b[1]=$!
c[1]=${!}
typeset -p a b c
output:
typeset a=21391
typeset -a b=( '$!' )
typeset -a c=( 21391 )
Getting b=( '$!' )
doesn't feel right... Is it a feature? A regression?
The problem's been fixed in commit 5977d3c
But IMHO it's best not to rely on arr[1]=$!
anymore and use the following workaround to be portable across zsh versions:
arr[1]=${!}