連想配列は、グローバルである必要がある関数本体内で宣言された場合、デフォルトでローカルであるように見えます。次のコード
#!/bin/bash
f() {
declare -A map
map[x]=a
map[y]=b
}
f
echo x: ${map[x]} y: ${map[y]}
出力を生成します:
x: y:
この間
#!/bin/bash
declare -A map
f() {
map[x]=a
map[y]=b
}
f
echo x: ${map[x]} y: ${map[y]}
出力を生成します:
x: a y: b
関数内でグローバル連想配列を宣言することは可能ですか? または、どのような回避策を使用できますか?