mirror of
https://https.git.savannah.gnu.org/git/bash.git
synced 2026-08-03 08:48:14 +02:00
commit bash-20161216 snapshot
This commit is contained in:
@@ -195,3 +195,23 @@ declare -A assoc=([0]="assoc" )
|
||||
assoc
|
||||
declare -A assoc=([two]="twoless" [three]="three" [one]="onemore" )
|
||||
declare -Ar assoc=([two]="twoless" [three]="three" [one]="onemore" )
|
||||
declare -A b=(["\""]="" [")"]="" ["\\"]="" ["]"]="" ["\`"]="" )
|
||||
declare -A b=(["]"]="" ["\`"]="" )
|
||||
declare -A dict=(["\""]="1" ["'"]="3" ["\\"]="4" ["\`"]="2" )
|
||||
./assoc9.sub: line 23: unset: `dict["]': not a valid identifier
|
||||
./assoc9.sub: line 23: unset: `dict[']': not a valid identifier
|
||||
./assoc9.sub: line 23: unset: `dict[\]': not a valid identifier
|
||||
./assoc9.sub: line 23: unset: `dict[`]': not a valid identifier
|
||||
declare -A dict=(["\""]="1" ["'"]="3" ["\\"]="4" ["\`"]="2" )
|
||||
declare -A dict=(["\""]="1" ["'"]="3" ["\\"]="4" ["\`"]="2" )
|
||||
declare -A dict=()
|
||||
4
|
||||
4
|
||||
a[$b]= 5
|
||||
declare -A a=(["80's"]="Depeche Mode" )
|
||||
./assoc9.sub: line 71: read: `a[80's]': not a valid identifier
|
||||
declare -A a
|
||||
declare -A a=(["80's"]="Depeche Mode" )
|
||||
./assoc9.sub: line 83: printf: `a[80's]': not a valid identifier
|
||||
declare -A a
|
||||
declare -A a=(["80's"]="Depeche Mode" )
|
||||
|
||||
@@ -207,3 +207,6 @@ readonly -A assoc
|
||||
declare -p assoc
|
||||
|
||||
${THIS_SH} ./assoc8.sub
|
||||
|
||||
# new shopt option to prevent multiple expansion of assoc array subscripts
|
||||
${THIS_SH} ./assoc9.sub
|
||||
|
||||
@@ -0,0 +1,89 @@
|
||||
typeset -A a=( [\\]= [\"]= [\)]= ) b
|
||||
for x in "${!a[@]}"; do b[$x]=; done
|
||||
b+=([\`]= [\]]=)
|
||||
typeset -p b
|
||||
for x in "${!a[@]}"; do
|
||||
unset -v 'b[$x]'
|
||||
done
|
||||
typeset -p b
|
||||
|
||||
unset -v a b
|
||||
|
||||
loaddict()
|
||||
{
|
||||
dict['"']=1
|
||||
dict['`']=2
|
||||
dict["'"]=3
|
||||
dict['\']=4
|
||||
declare -p dict
|
||||
}
|
||||
|
||||
del()
|
||||
{
|
||||
unset -v dict["$1"];
|
||||
}
|
||||
|
||||
declare -A dict
|
||||
loaddict
|
||||
for k in "${!dict[@]}"; do del "$k"; done
|
||||
declare -p dict
|
||||
|
||||
unset 'dict[@]'
|
||||
|
||||
shopt -s assoc_expand_once
|
||||
declare -A dict
|
||||
loaddict
|
||||
for k in "${!dict[@]}"; do del "$k"; done
|
||||
declare -p dict
|
||||
|
||||
unset a b dict
|
||||
|
||||
typeset -A a
|
||||
b="80's"
|
||||
|
||||
((++a[$b]))
|
||||
|
||||
((++a["$b"]))
|
||||
[[ $((++a[$b])) ]]
|
||||
[[ $((++a["$b"])) ]]
|
||||
echo ${a["$b"]}
|
||||
echo ${a[$b]}
|
||||
|
||||
let "++a[$b]"
|
||||
|
||||
echo 'a[$b]=' "${a[$b]}"
|
||||
|
||||
unset a b
|
||||
|
||||
declare -A a
|
||||
b="80's"
|
||||
|
||||
: ${a[$b]:='Depeche Mode'}
|
||||
|
||||
declare -p a
|
||||
|
||||
unset a b
|
||||
shopt -u assoc_expand_once
|
||||
|
||||
typeset -A a
|
||||
b="80's"
|
||||
|
||||
read a[$b] <<<"Depeche Mode"
|
||||
typeset -p a
|
||||
|
||||
shopt -s assoc_expand_once
|
||||
read a[$b] <<<"Depeche Mode"
|
||||
typeset -p a
|
||||
|
||||
unset a
|
||||
shopt -u assoc_expand_once
|
||||
|
||||
typeset -A a
|
||||
|
||||
printf -v a[$b] "%s" "Depeche Mode"
|
||||
typeset -p a
|
||||
|
||||
shopt -s assoc_expand_once
|
||||
|
||||
printf -v a[$b] "%s" "Depeche Mode"
|
||||
typeset -p a
|
||||
Reference in New Issue
Block a user