Assoziative Arrays sind standardmäßig lokal
Assoziative Arrays scheinen standardmäßig lokal zu sein, wenn sie in einem Funktionskörper deklariert werden, in dem sie global sein sollten. Der folgende Code
#!/bin/bash
f() {
declare -A map
map[x]=a
map[y]=b
}
f
echo x: ${map[x]} y: ${map[y]}
erzeugt die Ausgabe:
x: y:
während dieser
#!/bin/bash
declare -A map
f() {
map[x]=a
map[y]=b
}
f
echo x: ${map[x]} y: ${map[y]}
erzeugt die Ausgabe:
x: a y: b
Ist es möglich, ein globales assoziatives Array innerhalb einer Funktion zu deklarieren? Oder welche Abhilfemaßnahme kann verwendet werden?