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]=${!}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With