No bug here, but I naively expected the pattern substitution expansion
to work on array keys as well as values, e.g.:

    $ declare -A h
    $ h[foo]=x h[bar]=y
    $ # show keys and values:
    $ printf "\t<%s>\n" "${!h[@]}" "${h[@]}"
        <bar>
        <foo>
        <y>
        <x>
    $ # try to pad keys and values:
    $ printf "\t<%s>\n" "${!h[@]/#/    }" "${h[@]/#/  }"
        <>
        <  y>
        <  x>

I wanted to print out array keys with some padding, easily done in a loop,
but I wanted the padding applied to the separate strings generated using
the quoted [@] expansion.

The manpage documents the ${!name[@]} 'List of arrays keys' expansion
separately from the pattern substitution expansion, so it's all working
as documented, but I think the syntax could allow this.

I'm not running the latest bash: 

    $ bash --version
    GNU bash, version 4.2.37(1)-release (i486-pc-linux-gnu)

Ken

Reply via email to