默认情况下,关联数组在函数体内声明时似乎是局部的,它们应该是全局的。以下代码
#!/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
是否可以在函数中声明全局关联数组?或者可以使用什么解决方法?