Wie kann ich auf den letzten Schlüssel des assoziativen Arrays in bash zugreifen? In diesem Beispiel muss ich "lot" in der Variablen $ last haben. Ich habe einen Weg gefunden, der hier beschrieben wird: How to get the keys and values of an associative array indirectly in Bash?. Aber es funktioniert nicht wie im Beispiel unten erwartet funktionieren und diese Fehler zurück:Wie bekomme ich den letzten Schlüssel eines assoziativen Arrays (Dictionary)
./test.sh: line 9: keys2: ${!$addict[@]}: must use subscript when assigning associative array
Hier sind die Inhalte dieser test.sh:
declare -A addict=(
["foo"]="bar"
["few"]="baz"
["lot"]="pot"
)
index_last=$((${#addict[@]} - 1))
eval 'declare -A keys2=(${!$addict[@]})'
last="${keys2[$index_last]}"
echo "$keys2"
echo "$index_last"
echo "$last"
Die Schlüssel sind ungeordnet, daher macht das Konzept eines "letzten Schlüssels" keinen Sinn. Related: http://stackoverflow.com/q/29161323/2088135 –
Warum verwenden Sie Eval? – 123