#   This program is free software: you can redistribute it and/or modify
#   it under the terms of the GNU General Public License as published by
#   the Free Software Foundation, either version 3 of the License, or
#   (at your option) any later version.
#
#   This program is distributed in the hope that it will be useful,
#   but WITHOUT ANY WARRANTY; without even the implied warranty of
#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#   GNU General Public License for more details.
#
#   You should have received a copy of the GNU General Public License
#   along with this program.  If not, see <http://www.gnu.org/licenses/>.
#
# assignment to @ and *

declare -A assoc
key=@
key2=*

assoc[$key]=at
assoc[$key2]=star
assoc[!]=bang
declare -p assoc

echo ${assoc[$key]}
echo ${assoc[$key2]}
unset assoc

declare -A a

a[@]=at
declare -p a

declare -a ia
ia[@]=garbage

declare -p ia

declare a[@]=at2
declare -p a

unset a ia

declare -A a
printf -v a[@] "%10s" string

declare -p a
unset a

declare -A a
declare a[$key2]=star
declare a[@]=at
declare a[*]=star2

declare -p a
unset a
