declare -a args=()
args["p4"]=3
args["ifile"]=4
echo ${args["p4"]}
Ich erhalte AusgangBash-Skript für substituition Array nicht erwartet geben output.previous Wert wird
4
Warum vorherigen Array-Eintrag überschrieben wird?
declare -a args=()
args["p4"]=3
args["ifile"]=4
echo ${args["p4"]}
Ich erhalte AusgangBash-Skript für substituition Array nicht erwartet geben output.previous Wert wird
4
Warum vorherigen Array-Eintrag überschrieben wird?
Genau so ist es eine Antwort hier:
Mit declare -a
gibt an, dass Sie ein indiziertes Array deklarieren. Alle nicht numerischen Indizes werden als Null interpretiert. Verwenden Sie stattdessen declare -A
, die ein assoziatives Array initialisiert. Beachten Sie jedoch, dass nur wenige Shells assoziative Arrays unterstützen.
Aus der Manpage:
Options which set attributes:
-a to make NAMEs indexed arrays (if supported)
-A to make NAMEs associative arrays (if supported)
Hier finden Sie aktuelle Option '-a' von declare. Siehe: 'help declare'. – Cyrus