6 Mayıs 2021 Perşembe tarihinde Ulrich Windl <
ulrich.wi...@rz.uni-regensburg.de> yazdı:
>
> But why is $# decremented after the first unset?
>

Because `x[0]' existed then, and the number of x's members changed with its
removal. `${#x[@]}' doesn't give you the top index of `x', it expands to
the number of elements in `x'. I suspect you don't know that bash arrays
can be sparse. Well, they can be.

    $ x=([42]=foo [69]=bar)
    $ echo "${#x[@]}"
    2
    $ echo "${!x[@]}"
    42 69
    $ echo "${x[@]}"
    foo bar


-- 
Oğuz

Reply via email to