illumos-port-bash/tests/assoc6.sub

160 lines
2.1 KiB
Plaintext

# 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/>.
#
declare -A foo
foo=([bar\"bie]=doll)
echo ${!foo[@]}
echo ${foo[@]}
declare -p foo
unset foo
declare -A foo=(["bar\"bie"]="doll")
echo ${!foo[@]}
echo ${foo[@]}
declare -p foo
unset foo
declare -A foo
foo=(["bar\"bie"]="doll")
echo ${!foo[@]}
echo ${foo[@]}
declare -p foo
unset foo
declare -A foo
foo["bar\"bie"]="doll"
echo ${!foo[@]}
echo ${foo[@]}
declare -p foo
unset foo
declare -A foo
foo[bar\"bie]="doll"
echo ${!foo[@]}
echo ${foo[@]}
declare -p foo
unset foo
declare -A foo
foo=([bar\'bie]=doll)
echo ${!foo[@]}
echo ${foo[@]}
declare -p foo
unset foo
declare -A foo=(["bar'bie"]="doll")
echo ${!foo[@]}
echo ${foo[@]}
declare -p foo
unset foo
declare -A foo
foo=(["bar'bie"]="doll")
echo ${!foo[@]}
echo ${foo[@]}
declare -p foo
unset foo
declare -A foo
foo["bar'bie"]="doll"
echo ${!foo[@]}
echo ${foo[@]}
declare -p foo
unset foo
declare -A foo
foo[bar\'bie]="doll"
echo ${!foo[@]}
echo ${foo[@]}
declare -p foo
unset foo
declare -A foo
foo=([bar\$bie]=doll)
echo ${!foo[@]}
echo ${foo[@]}
declare -p foo
unset foo
declare -A foo=(["bar[bie"]="doll")
echo ${!foo[@]}
echo ${foo[@]}
declare -p foo
unset foo
declare -A foo
foo=(["bar\`bie"]="doll")
echo ${!foo[@]}
echo ${foo[@]}
declare -p foo
unset foo
declare -A foo
# this doesn't work right without the backslash
foo["bar\]bie"]="doll"
echo ${!foo[@]}
echo ${foo[@]}
declare -p foo
unset foo
declare -A foo
foo[bar\${foo}bie]="doll"
echo ${!foo[@]}
echo ${foo[@]}
declare -p foo
unset foo
declare -A foo